class ParserTestCase(unittest.TestCase): """ Test cases for Parser """ @classmethod def setUpClass(cls): """ Setup Environment """ # Create a dummy test file writer = open('input_test.txt', 'w') writer.write("begin(T1)\n") writer.write("W(T1,x1,101)\n") writer.close() @classmethod def tearDownClass(cls): """ Clean up environment when finished """ os.remove('input_test.txt') def setUp(self): self.logger = Logger() self.logger.show_stdout() def test_valid_input_file(self): """ Test that a valid input file can be read """ parser = Parser('input_test.txt', self.logger) instruction = parser.get_instruction() self.assertEquals(instruction.instruction_type, InstructionType.BEGIN) self.assertEquals(instruction.transaction_identifier, "T1") instruction = parser.get_instruction() self.assertEquals(instruction.instruction_type, InstructionType.WRITE) self.assertEquals(instruction.transaction_identifier, "T1") self.assertEquals(instruction.variable_identifier, "x1") self.assertEquals(instruction.value, "101")
def test_prints_when_verbose_true(self): """ Test that output is shown to stdout when Verbose flag is True """ logger = Logger() logger.show_stdout() self.assertNotEquals(logger.log("Something"), 0)
class SiteTestCase(unittest.TestCase): """ Test cases for a single Site """ def setUp(self): self.logger = Logger() self.logger.show_stdout() self.clock = Clock() self.clock.tick() def test_variables_on_site_one(self): """ Confirm which variables are on Site 1 """ site = Site(1, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_two(self): """ Confirm which variables are on Site 2 """ site = Site(2, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.assertTrue("x1" in site.data_manager.variables) self.assertTrue("x11" in site.data_manager.variables) # No other odd variables should be on site one self.assertFalse("x3" in site.data_manager.variables) self.assertFalse("x5" in site.data_manager.variables) self.assertFalse("x7" in site.data_manager.variables) self.assertFalse("x9" in site.data_manager.variables) self.assertFalse("x13" in site.data_manager.variables) self.assertFalse("x15" in site.data_manager.variables) self.assertFalse("x17" in site.data_manager.variables) self.assertFalse("x19" in site.data_manager.variables) def test_variables_on_site_three(self): """ Confirm which variables are on Site 3 """ site = Site(3, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_four(self): """ Confirm which variables are on Site 4 """ site = Site(4, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.assertTrue("x3" in site.data_manager.variables) self.assertTrue("x13" in site.data_manager.variables) self.assertFalse("x1" in site.data_manager.variables) self.assertFalse("x11" in site.data_manager.variables) self.assertFalse("x5" in site.data_manager.variables) self.assertFalse("x15" in site.data_manager.variables) self.assertFalse("x7" in site.data_manager.variables) self.assertFalse("x17" in site.data_manager.variables) self.assertFalse("x9" in site.data_manager.variables) self.assertFalse("x19" in site.data_manager.variables) def test_variables_on_site_five(self): """ Confirm which variables are on Site 5 """ site = Site(5, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_six(self): """ Confirm which variables are on Site 6 """ site = Site(6, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.assertTrue("x5" in site.data_manager.variables) self.assertTrue("x15" in site.data_manager.variables) self.assertFalse("x1" in site.data_manager.variables) self.assertFalse("x11" in site.data_manager.variables) self.assertFalse("x3" in site.data_manager.variables) self.assertFalse("x13" in site.data_manager.variables) self.assertFalse("x7" in site.data_manager.variables) self.assertFalse("x17" in site.data_manager.variables) self.assertFalse("x9" in site.data_manager.variables) self.assertFalse("x19" in site.data_manager.variables) def test_variables_on_site_seven(self): """ Confirm which variables are on Site 7 """ site = Site(7, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_eight(self): """ Confirm which variables are on Site 8 """ site = Site(8, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.assertTrue("x7" in site.data_manager.variables) self.assertTrue("x17" in site.data_manager.variables) self.assertFalse("x1" in site.data_manager.variables) self.assertFalse("x11" in site.data_manager.variables) self.assertFalse("x3" in site.data_manager.variables) self.assertFalse("x13" in site.data_manager.variables) self.assertFalse("x5" in site.data_manager.variables) self.assertFalse("x15" in site.data_manager.variables) self.assertFalse("x9" in site.data_manager.variables) self.assertFalse("x19" in site.data_manager.variables) def test_variables_on_site_nine(self): """ Confirm which variables are on Site 9 """ site = Site(9, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_ten(self): """ Confirm which variables are on Site 10 """ site = Site(10, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.assertTrue("x9" in site.data_manager.variables) self.assertTrue("x19" in site.data_manager.variables) self.assertFalse("x1" in site.data_manager.variables) self.assertFalse("x11" in site.data_manager.variables) self.assertFalse("x3" in site.data_manager.variables) self.assertFalse("x13" in site.data_manager.variables) self.assertFalse("x5" in site.data_manager.variables) self.assertFalse("x15" in site.data_manager.variables) self.assertFalse("x7" in site.data_manager.variables) self.assertFalse("x17" in site.data_manager.variables) def test_variables_on_site_eleven(self): """ Confirm which variables are on Site 11 """ site = Site(11, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_twelve(self): """ Confirm which variables are on Site 12 """ site = Site(12, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_thirteen(self): """ Confirm which variables are on Site 13 """ site = Site(13, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_fourteen(self): """ Confirm which variables are on Site 14 """ site = Site(14, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_fifteen(self): """ Confirm which variables are on Site 15 """ site = Site(15, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_sixteen(self): """ Confirm which variables are on Site 16 """ site = Site(16, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_seventeen(self): """ Confirm which variables are on Site 17 """ site = Site(17, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_eighteen(self): """ Confirm which variables are on Site 18 """ site = Site(18, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_nineteen(self): """ Confirm which variables are on Site 19 """ site = Site(19, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def test_variables_on_site_twenty(self): """ Confirm which variables are on Site 20 """ site = Site(20, self.clock.time, self.logger) self.confirm_even_variables_are_present(site) self.confirm_odd_variables_are_not_present(site) def confirm_even_variables_are_present(self, site): """ Even variables should be on all Sites """ self.assertTrue("x2" in site.data_manager.variables) self.assertTrue("x4" in site.data_manager.variables) self.assertTrue("x6" in site.data_manager.variables) self.assertTrue("x8" in site.data_manager.variables) self.assertTrue("x10" in site.data_manager.variables) self.assertTrue("x12" in site.data_manager.variables) self.assertTrue("x14" in site.data_manager.variables) self.assertTrue("x16" in site.data_manager.variables) self.assertTrue("x18" in site.data_manager.variables) self.assertTrue("x20" in site.data_manager.variables) def confirm_odd_variables_are_not_present(self, site): """ Odd variables should be on specific Sites only """ self.assertFalse("x1" in site.data_manager.variables) self.assertFalse("x11" in site.data_manager.variables) self.assertFalse("x3" in site.data_manager.variables) self.assertFalse("x13" in site.data_manager.variables) self.assertFalse("x5" in site.data_manager.variables) self.assertFalse("x15" in site.data_manager.variables) self.assertFalse("x7" in site.data_manager.variables) self.assertFalse("x17" in site.data_manager.variables) self.assertFalse("x9" in site.data_manager.variables) self.assertFalse("x19" in site.data_manager.variables)