class RoadExposureReportMixinTest(unittest.TestCase): """Test the ReportMixin. .. versionadded:: 3.2 """ # noinspection PyPep8Naming def setUp(self): """Fixture run before all tests.""" self.road_mixin_blank = RoadExposureReportMixin() self.road_mixin = RoadExposureReportMixin() self.road_mixin_blank.question = '' self.road_mixin.question = '' self.road_mixin.road_lengths = OrderedDict([ ('Main', 133.3), ('Side', 10), ('Bike', 1.2)]) self.road_mixin.affected_road_lengths = OrderedDict([ ('Flooded', { 'Main': 2, 'Side': 5.5, 'Bike': 1.2}) ]) self.road_mixin.affected_road_categories = ['Flooded'] self.maxDiff = None def tearDown(self): """Run after each test.""" del self.road_mixin_blank del self.road_mixin def test_0001_generate_blank_data(self): """Generate a blank data.""" blank_data = self.road_mixin_blank.generate_data() self.maxDiff = None expected = { 'action check list': { # I removed the field list here as in # 3.5 the field list is generated by the IF, not # the Mixin so it wont be populated as this test # does not create an IF 'fields': [], 'title': 'Action checklist' }, 'exposure': 'road', 'impact summary': { 'attributes': ['category', 'value'], 'headings': ['Roads', 'Length'], 'fields': [['Unaffected (m)', 0], ['Total (m)', 0]]}, 'impact table': { 'attributes': [ 'Road Type', 'Unaffected', 'Total'], 'fields': [['Total (m)', 0, 0]] }, 'notes': {'fields': [], 'title': 'Notes and assumptions'}, 'question': ''} self.assertDictEqual(expected, blank_data) def test_0002_road_breakdown(self): """Test the buildings breakdown.""" roads_breakdown = self.road_mixin.impact_table()['fields'] expected = [ ['Main (m)', 2, 131.3, 133.3], ['Side (m)', 5.5, 4.5, 10], ['Bike (m)', 1.2, 0.0, 1.2], ['Total (m)', 8.7, 135.8, 144.5] ] self.assertEquals(roads_breakdown, expected) def test_0003_total(self): """Test general methods.""" default_length = self.road_mixin_blank.total_road_length message = 'Default length is not as expected.' self.assertEqual(default_length, 0, message) message = 'Real length is not as expected.' length = self.road_mixin.total_road_length self.assertEqual(length, 144.5, message) def test_0004_generate_data(self): """Test generating data.""" self.maxDiff = None data = self.road_mixin.generate_data() expected = { 'action check list': { # I removed the field list here as in # 3.5 the field list is generated by the IF, not # the Mixin so it wont be populated as this test # does not create an IF 'fields': [ ], 'title': 'Action checklist' }, 'exposure': 'road', 'impact summary': { 'attributes': ['category', 'value'], 'headings': ['Roads', 'Length'], 'fields': [ ['Flooded (m)', 8.7], ['Unaffected (m)', 135.8], ['Total (m)', 144.5] ] }, 'impact table': { 'attributes': [ 'Road Type', 'Flooded', 'Unaffected', 'Total' ], 'fields': [ ['Main (m)', 2, 131.3, 133.3], ['Side (m)', 5.5, 4.5, 10], ['Bike (m)', 1.2, 0.0, 1.2], ['Total (m)', 8.7, 135.8, 144.5] ] }, 'notes': { 'fields': [], 'title': 'Notes and assumptions' }, 'question': '' } self.assertDictEqual(data, expected)
class RoadExposureReportMixinTest(unittest.TestCase): """Test the ReportMixin. .. versionadded:: 3.2 """ # noinspection PyPep8Naming def setUp(self): """Fixture run before all tests.""" self.road_mixin_blank = RoadExposureReportMixin() self.road_mixin = RoadExposureReportMixin() self.road_mixin.road_lengths = OrderedDict([ ('Main', 133.3), ('Side', 10), ('Bike', 1.2)]) self.road_mixin.affected_road_lengths = OrderedDict([ ('Flooded', { 'Main': 2, 'Side': 5.5, 'Bike': 1.2}) ]) self.road_mixin.affected_road_categories = ['Flooded'] def tearDown(self): """Run after each test.""" del self.road_mixin_blank del self.road_mixin def test_0001_generate_blank_data(self): """Generate a blank data.""" blank_data = self.road_mixin_blank.generate_data() expected = { 'action check list': { 'fields': [ 'Which roads can be used to evacuate people or to ' 'distribute logistics?', 'What type of vehicles can use the unaffected roads?', 'What sort of equipment will be needed to reopen roads & ' 'where will we get it?', 'Which government department is responsible for ' 'supplying equipment ?' ], 'title': 'Action checklist' }, 'exposure': 'road', 'impact summary': { 'attributes': ['Unaffected', 'Total'], 'fields': [[0, 0]]}, 'impact table': { 'attributes': [ 'Road Type', 'Unaffected', 'Total'], 'fields': [] }, 'notes': {'fields': [], 'title': 'Notes'}, 'question': ''} self.assertEquals(expected, blank_data) def test_0002_road_breakdown(self): """Test the buildings breakdown.""" roads_breakdown = self.road_mixin.roads_breakdown()['fields'] expected = [ ['Main', 2, 131.3, 133.3], ['Side', 5.5, 4.5, 10], ['Bike', 1.2, 0.0, 1.2] ] self.assertEquals(roads_breakdown, expected) def test_0003_total(self): """Test general methods.""" default_length = self.road_mixin_blank.total_road_length message = 'Default length is not as expected.' self.assertEqual(default_length, 0, message) message = 'Real length is not as expected.' length = self.road_mixin.total_road_length self.assertEqual(length, 144.5, message) def test_0004_generate_data(self): """Test generating data.""" self.maxDiff = None data = self.road_mixin.generate_data() expected = { 'action check list': { 'fields': [ 'Which roads can be used to evacuate people or to ' 'distribute logistics?', 'What type of vehicles can use the unaffected roads?', 'What sort of equipment will be needed to reopen roads & ' 'where will we get it?', 'Which government department is responsible for ' 'supplying equipment ?' ], 'title': 'Action checklist' }, 'exposure': 'road', 'impact summary': { 'attributes': ['Flooded', 'Unaffected', 'Total'], 'fields': [[8.7, 135.8, 144.5]] }, 'impact table': { 'attributes': [ 'Road Type', 'Flooded', 'Unaffected', 'Total' ], 'fields': [ ['Main', 2, 131.3, 133.3], ['Side', 5.5, 4.5, 10], ['Bike', 1.2, 0.0, 1.2] ] }, 'notes': { 'fields': [], 'title': 'Notes' }, 'question': '' } self.assertEquals(data, expected)
class RoadExposureReportMixinTest(unittest.TestCase): """Test the ReportMixin. .. versionadded:: 3.2 """ # noinspection PyPep8Naming def setUp(self): """Fixture run before all tests.""" self.road_mixin_blank = RoadExposureReportMixin() self.road_mixin = RoadExposureReportMixin() self.road_mixin_blank.question = '' self.road_mixin.question = '' self.road_mixin.road_lengths = OrderedDict([('Main', 133.3), ('Side', 10), ('Bike', 1.2)]) self.road_mixin.affected_road_lengths = OrderedDict([('Flooded', { 'Main': 2, 'Side': 5.5, 'Bike': 1.2 })]) self.road_mixin.affected_road_categories = ['Flooded'] self.maxDiff = None def tearDown(self): """Run after each test.""" del self.road_mixin_blank del self.road_mixin def test_0001_generate_blank_data(self): """Generate a blank data.""" blank_data = self.road_mixin_blank.generate_data() self.maxDiff = None expected = { 'action check list': { # I removed the field list here as in # 3.5 the field list is generated by the IF, not # the Mixin so it wont be populated as this test # does not create an IF 'fields': [], 'title': 'Action checklist' }, 'exposure': 'road', 'impact summary': { 'attributes': ['category', 'value'], 'headings': ['Roads', 'Length'], 'fields': [['Unaffected (m)', 0], ['Total (m)', 0]] }, 'impact table': { 'attributes': ['Road Type', 'Unaffected', 'Total'], 'fields': [['Total (m)', 0, 0]] }, 'notes': { 'fields': [], 'title': 'Notes and assumptions' }, 'question': '' } self.assertDictEqual(expected, blank_data) def test_0002_road_breakdown(self): """Test the buildings breakdown.""" roads_breakdown = self.road_mixin.impact_table()['fields'] expected = [['Main (m)', 2, 131.3, 133.3], ['Side (m)', 5.5, 4.5, 10], ['Bike (m)', 1.2, 0.0, 1.2], ['Total (m)', 8.7, 135.8, 144.5]] self.assertEquals(roads_breakdown, expected) def test_0003_total(self): """Test general methods.""" default_length = self.road_mixin_blank.total_road_length message = 'Default length is not as expected.' self.assertEqual(default_length, 0, message) message = 'Real length is not as expected.' length = self.road_mixin.total_road_length self.assertEqual(length, 144.5, message) def test_0004_generate_data(self): """Test generating data.""" self.maxDiff = None data = self.road_mixin.generate_data() expected = { 'action check list': { # I removed the field list here as in # 3.5 the field list is generated by the IF, not # the Mixin so it wont be populated as this test # does not create an IF 'fields': [], 'title': 'Action checklist' }, 'exposure': 'road', 'impact summary': { 'attributes': ['category', 'value'], 'headings': ['Roads', 'Length'], 'fields': [['Flooded (m)', 8.7], ['Unaffected (m)', 135.8], ['Total (m)', 144.5]] }, 'impact table': { 'attributes': ['Road Type', 'Flooded', 'Unaffected', 'Total'], 'fields': [['Main (m)', 2, 131.3, 133.3], ['Side (m)', 5.5, 4.5, 10], ['Bike (m)', 1.2, 0.0, 1.2], ['Total (m)', 8.7, 135.8, 144.5]] }, 'notes': { 'fields': [], 'title': 'Notes and assumptions' }, 'question': '' } self.assertDictEqual(data, expected)