59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
import py
 | 
						|
from py.__.test.event import EventBus
 | 
						|
from py.__.test import event 
 | 
						|
import suptest
 | 
						|
from py.__.code.testing.test_excinfo import TWMock
 | 
						|
 | 
						|
class TestEventBus:
 | 
						|
    def test_simple(self):
 | 
						|
        bus = EventBus()
 | 
						|
        l = []
 | 
						|
        bus.subscribe(l.append) 
 | 
						|
        bus.notify(1)
 | 
						|
        bus.notify(2)
 | 
						|
        bus.notify(3)
 | 
						|
        assert l == [1,2,3]
 | 
						|
 | 
						|
    def test_multi_sub(self):
 | 
						|
        bus = EventBus()
 | 
						|
        l1 = []
 | 
						|
        l2 = []
 | 
						|
        bus.subscribe(l1.append) 
 | 
						|
        bus.subscribe(l2.append) 
 | 
						|
        bus.notify(1)
 | 
						|
        bus.notify(2)
 | 
						|
        bus.notify(3)
 | 
						|
        assert l1 == [1,2,3]
 | 
						|
        assert l2 == [1,2,3]
 | 
						|
 | 
						|
    def test_remove(self):
 | 
						|
        bus = EventBus()
 | 
						|
        l = []
 | 
						|
        bus.subscribe(l.append) 
 | 
						|
        bus.notify(1)
 | 
						|
        bus.unsubscribe(l.append) 
 | 
						|
        bus.notify(2)
 | 
						|
        assert l == [1]
 | 
						|
 | 
						|
 | 
						|
class TestItemTestReport(object):
 | 
						|
    def test_toterminal(self):
 | 
						|
        sorter = suptest.events_run_example("filetest.py")
 | 
						|
        reports = sorter.get(event.ItemTestReport)
 | 
						|
        ev = reports[0] 
 | 
						|
        assert ev.failed 
 | 
						|
        twmock = TWMock()
 | 
						|
        ev.toterminal(twmock)
 | 
						|
        assert twmock.lines
 | 
						|
        twmock = TWMock()
 | 
						|
        ev.outcome.longrepr = "hello"
 | 
						|
        ev.toterminal(twmock)
 | 
						|
        assert twmock.lines[0] == "hello"
 | 
						|
        assert not twmock.lines[1:]
 | 
						|
 | 
						|
        ##assert ev.repr_run.find("AssertionError") != -1
 | 
						|
        filepath = ev.colitem.fspath
 | 
						|
        #filepath , modpath = ev.itemrepr_path
 | 
						|
        assert str(filepath).endswith("filetest.py")
 | 
						|
        #assert modpath.endswith("filetest.test_one")
 |