115 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
from __future__ import generators
 | 
						|
from py.__.test.tkinter import util 
 | 
						|
from py.__.test.tkinter.util import Status, TestReport, OutBuffer
 | 
						|
import py
 | 
						|
Item = py.test.Item
 | 
						|
 | 
						|
class TestStatus:
 | 
						|
 | 
						|
    def test_init_with_None(self):
 | 
						|
        status = Status(None)
 | 
						|
        assert status == status.NotExecuted()
 | 
						|
 | 
						|
    def test_str(self):
 | 
						|
        status = Status(Item.Passed())
 | 
						|
        assert status == status.Passed()
 | 
						|
 | 
						|
        status = Status(Item.Failed())
 | 
						|
        assert status == status.Failed()
 | 
						|
 | 
						|
        status = Status(Item.Skipped())
 | 
						|
        assert status == status.Skipped()
 | 
						|
 | 
						|
 | 
						|
    def test_init_with_bad_name(self):
 | 
						|
        status = Status('nothing')
 | 
						|
        assert status == Status.NotExecuted()
 | 
						|
 | 
						|
    def test_init_with_good_name(self):
 | 
						|
        def check_str(obj, expected):
 | 
						|
            assert str(obj) == expected
 | 
						|
            
 | 
						|
        for name in Status.ordered_list:
 | 
						|
            yield check_str, Status(name), name
 | 
						|
 | 
						|
    def test_update(self):
 | 
						|
        failed = Status.Failed()
 | 
						|
        passed = Status.Passed()
 | 
						|
        failed.update(passed)
 | 
						|
        assert failed == Status.Failed()
 | 
						|
 | 
						|
        passed.update(failed)
 | 
						|
        assert passed == Status.Failed()
 | 
						|
        assert passed == failed
 | 
						|
 | 
						|
    def test_eq_(self):
 | 
						|
        passed = Status.Passed()
 | 
						|
        assert passed == passed
 | 
						|
        assert passed == Status.Passed()
 | 
						|
 | 
						|
        failed = Status.Failed()
 | 
						|
        assert failed != passed
 | 
						|
 | 
						|
 | 
						|
class TestTestReport:
 | 
						|
 | 
						|
    def setup_method(self, method):
 | 
						|
        self.path = py.path.local()
 | 
						|
        self.collector = py.test.collect.Directory(self.path)
 | 
						|
        self.testresult = TestReport()
 | 
						|
        
 | 
						|
    def test_start(self):
 | 
						|
        self.testresult.start(self.collector)
 | 
						|
 | 
						|
        assert self.testresult.full_id == tuple(self.collector.listnames())
 | 
						|
        assert self.testresult.time != 0
 | 
						|
        assert self.testresult.status == Status.NotExecuted()
 | 
						|
 | 
						|
    def test_finish(self):
 | 
						|
        self.testresult.start(self.collector)
 | 
						|
 | 
						|
        py.std.time.sleep(1.1)
 | 
						|
 | 
						|
        self.testresult.finish(self.collector, None)
 | 
						|
        assert self.testresult.time > 1
 | 
						|
        assert self.testresult.status == Status.NotExecuted()
 | 
						|
        
 | 
						|
        
 | 
						|
    def test_toChannel_fromChannel(self):
 | 
						|
        assert isinstance(self.testresult.to_channel()['status'], str)
 | 
						|
        result = TestReport.fromChannel(self.testresult.to_channel())
 | 
						|
        assert isinstance(result.status, Status)
 | 
						|
 | 
						|
    def test_copy(self):
 | 
						|
        result2 = self.testresult.copy()
 | 
						|
        assert self.testresult.status == Status.NotExecuted()
 | 
						|
        for key in TestReport.template.keys():
 | 
						|
            assert getattr(result2, key) == getattr(self.testresult, key)
 | 
						|
 | 
						|
        self.testresult.status = Status.Failed()
 | 
						|
        assert result2.status != self.testresult.status
 | 
						|
 | 
						|
    def test_is_item_attribute(self):
 | 
						|
        self.testresult.start(py.test.Item('test_is_item_attribute item',
 | 
						|
                                           parent = self.collector))
 | 
						|
        assert self.testresult.is_item == True
 | 
						|
        self.testresult.start(self.collector)
 | 
						|
        assert self.testresult.is_item == False
 | 
						|
            
 | 
						|
class Test_OutBuffer:
 | 
						|
 | 
						|
    def setup_method(self, method):
 | 
						|
        self.out = OutBuffer()
 | 
						|
 | 
						|
    def test_line(self):
 | 
						|
        oneline = 'oneline'
 | 
						|
        self.out.line(oneline)
 | 
						|
        assert self.out.getoutput() == oneline + '\n'
 | 
						|
 | 
						|
    def test_write(self):
 | 
						|
        item = 'item'
 | 
						|
        self.out.write(item)
 | 
						|
        assert self.out.getoutput() == item
 | 
						|
 | 
						|
    
 |