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
 | |
| 
 | |
|     
 |