102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
 | 
						|
import py
 | 
						|
 | 
						|
def test_logger_identity():
 | 
						|
    assert py.log.get() is py.log.get() 
 | 
						|
    otherkey = object()
 | 
						|
    for key in "name1", object():
 | 
						|
        log = py.log.get(key)
 | 
						|
        assert py.log.get(key) is log 
 | 
						|
        assert py.log.get(otherkey) is not log 
 | 
						|
 | 
						|
def test_log_preset():
 | 
						|
    log = py.log.get(test_log_preset) 
 | 
						|
    l2 = []
 | 
						|
    log.set_sub(x1=None, x2=l2.append)
 | 
						|
    l3 = []
 | 
						|
    log2 = py.log.get(test_log_preset, 
 | 
						|
                      x2=None,
 | 
						|
                      x3=l3.append)
 | 
						|
 | 
						|
    log2.x2("hello")
 | 
						|
    log2.x3("world")
 | 
						|
    assert l2[0].strcontent() == "hello"
 | 
						|
    assert l3[0].strcontent() == "world"
 | 
						|
 | 
						|
def test_log_override():
 | 
						|
    l2 = []
 | 
						|
    log = py.log.get(object(), x1=None, x2=l2.append)
 | 
						|
    l = []
 | 
						|
    log.set_override(l.append)
 | 
						|
    log.x1("hello")
 | 
						|
    log.x2("world")
 | 
						|
    log.ensure_sub(x3=None)
 | 
						|
    log.x3(42)
 | 
						|
    assert len(l) == 3
 | 
						|
    assert not l2
 | 
						|
    r = [x.strcontent() for x in l]
 | 
						|
    assert r == ["hello", "world", "42"]
 | 
						|
    l[:] = []
 | 
						|
    log.del_override()
 | 
						|
    log.del_override()
 | 
						|
    log.x2("hello")
 | 
						|
    assert l2[0].strcontent() == "hello"
 | 
						|
 | 
						|
def test_log_basic():
 | 
						|
    l1 = []
 | 
						|
    class SomeKey:
 | 
						|
        def __str__(self):
 | 
						|
            return "somekey"
 | 
						|
 | 
						|
    for key in "name1", SomeKey(): 
 | 
						|
        log = py.log.get(key)
 | 
						|
        log.set_sub(x1=l1.append) 
 | 
						|
        log.x1(42)
 | 
						|
        assert l1[-1].content == (42,)
 | 
						|
        assert l1[-1].strcontent() == "42"
 | 
						|
        assert l1[-1].keywords == (key, 'x1')
 | 
						|
        assert l1[-1].strprefix() == "[%s:x1] " %(key,)
 | 
						|
 | 
						|
        #log.set_prefix("hello")
 | 
						|
        #assert l1[0].strprefix() == "hello"
 | 
						|
        #log("world")
 | 
						|
        #assert str(l1[-1]) == "hello world" 
 | 
						|
 | 
						|
class TestLogger:
 | 
						|
    def setup_method(self, method):
 | 
						|
        self._x1 = []
 | 
						|
        self._x2 = []
 | 
						|
        self.log = py.log.get()
 | 
						|
        self.log.set_sub(x1=self._x1.append, 
 | 
						|
                         x2=self._x2.append) 
 | 
						|
    
 | 
						|
    #def teardown_method(self, method):
 | 
						|
    #    self.log.close() 
 | 
						|
 | 
						|
    def test_simple(self):
 | 
						|
        self.log.x1("hello")
 | 
						|
        self.log.x2("world")
 | 
						|
        assert self._x1[0].strcontent() == 'hello'
 | 
						|
        assert self._x1[0].strprefix() == '[global:x1] '
 | 
						|
        assert self._x2[0].strcontent() == 'world'
 | 
						|
        assert self._x2[0].strprefix() == '[global:x2] '
 | 
						|
        py.test.raises(AttributeError, "self.log.x3")
 | 
						|
 | 
						|
    def test_reconfig(self):
 | 
						|
        self.log.set_sub(x1=None)
 | 
						|
        self.log.x1("asdasd")
 | 
						|
        assert not self._x1
 | 
						|
 | 
						|
    def test_reconfig_add(self):
 | 
						|
        l = []
 | 
						|
        self.log.set_sub(x2=None, x3=l.append) 
 | 
						|
        self.log.x2("asdhello")
 | 
						|
        assert not self._x2
 | 
						|
        self.log.x3(123) 
 | 
						|
        assert l[0].content == (123,)
 | 
						|
 | 
						|
    def test_logger_del(self):
 | 
						|
        del self.log.x2 
 | 
						|
        py.test.raises(AttributeError, "self.log.x2")
 | 
						|
 |