def test_other_airline_roster_returns_validation_error(self): roster = self.create_roster_from_file('anz_other_airline_format.txt', 'ANZ') with self.assertRaises(ValidationError): roster_processor_factory(roster) roster = self.create_roster_from_file('anz_test_roster.txt', 'ANZ') try: roster_processor_factory(roster) except ValidationError: self.fail("roster_processor_factory() raised ValidationError")
def test_parser_returns_select_roster_fields(self): roster = self.create_roster_from_file('anz_test_roster.txt', 'ANZ') roster_processor = roster_processor_factory(roster) roster_fields = roster_processor.get_roster_fields('name', 'rank') self.assertEqual(roster_fields.get('name'), 'TIPPETT SIMON') self.assertIsNone(roster_fields.get('base'), None) self.assertEqual(roster_fields.get('rank'), 'CAPTAIN A320')
def test_parser_returns_roster_fields(self): roster = self.create_roster_from_file('anz_test_roster.txt', 'ANZ') roster_processor = roster_processor_factory(roster) roster_fields = roster_processor.get_roster_fields() self.assertEqual(roster_fields.get('name'), 'TIPPETT SIMON') self.assertEqual(roster_fields.get('base'), 'AKL') self.assertEqual(roster_fields.get('rank'), 'CAPTAIN A320') self.assertEqual(roster_fields.get('month'), '05') self.assertEqual(roster_fields.get('year'), '2015')
def test_parser_returns_roster_fields_and_save_to_model(self): roster = self.create_roster_from_file('anz_test_roster.txt', 'ANZ') roster_processor = roster_processor_factory(roster) roster_fields = roster_processor.get_roster_fields() for attr, value in roster_fields.items(): if hasattr(roster, attr): setattr(roster, attr, value) roster.save() self.assertEqual(roster.name, 'TIPPETT SIMON') self.assertEqual(roster.base, 'AKL') self.assertEqual(roster.rank, 'CAPTAIN A320') self.assertEqual(roster.month, '05') self.assertEqual(roster.year, '2015')
def test_factory_for_unknown_airline_raises_validation_error(self): roster = self.create_roster_from_file('anz_other_airline_format.txt', 'QFA') with self.assertRaises(ValidationError): roster_processor_factory(roster)
def test_parser_raises_validation_error_if_no_roster_text(self): roster = self.create_roster_from_file('anz_test_roster.txt', 'ANZ') roster.roster_text = '' roster.save() with self.assertRaises(ValidationError): roster_processor_factory(roster)
def test_parser_does_not_return_roster_field_that_doesnt_exist(self): roster = self.create_roster_from_file('anz_test_roster.txt', 'ANZ') roster_processor = roster_processor_factory(roster) roster_fields = roster_processor.get_roster_fields('invalid_field') self.assertIsNone(roster_fields.get('invalid_field'), None) self.assertIsNone(roster_fields.get('base'), None)
def test_factory_returns_airline_processor(self): roster = self.create_roster_from_file('anz_test_roster.txt', 'ANZ') roster_processor = roster_processor_factory(roster) self.assertIn('anz', inspect.getfile(roster_processor.__class__)) self.assertNotIn('wrong airline', inspect.getfile(roster_processor.__class__))