コード例 #1
0
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_report(self):
        """Generate a blank report."""
        blank_report = self.road_mixin_blank.generate_report().to_text()
        # self.assertListEqual(blank_report, expected_blank_report, message)
        self.assertIn('**Road Type**', blank_report)
        self.assertIn('**Total (m)**', blank_report)

    def test_0002_road_breakdown(self):
        """Test the buildings breakdown."""
        roads_breakdown = self.road_mixin.roads_breakdown().to_text()

        self.assertIn('**Breakdown by road type**', roads_breakdown)
        self.assertIn('Main', roads_breakdown)
        self.assertIn('133', roads_breakdown)
        self.assertIn('Side', roads_breakdown)
        self.assertIn('10', roads_breakdown)
        self.assertIn('Bike', roads_breakdown)
        self.assertIn('1', roads_breakdown)

    def test_0003_total(self):
        """Test general methods."""
        default_length = self.road_mixin_blank.total_road_length
        length = self.road_mixin.total_road_length
        message = 'Default length is not as expected.'
        self.assertEqual(default_length, 0, message)
        message = 'Real length is not as expected.'
        self.assertEqual(length, 144.5, message)
コード例 #2
0
ファイル: impact_function.py プロジェクト: vck/inasafe
 def __init__(self):
     """Constructor."""
     super(TsunamiRasterRoadsFunction, self).__init__()
     RoadExposureReportMixin.__init__(self)
     self.add_unaffected_column = False
     self.hazard_classes = [
         tr('Dry Zone'),
         tr('Low Hazard Zone'),
         tr('Medium Hazard Zone'),
         tr('High Hazard Zone'),
         tr('Very High Hazard Zone'),
     ]
コード例 #3
0
 def __init__(self):
     """Constructor."""
     super(TsunamiRasterRoadsFunction, self).__init__()
     RoadExposureReportMixin.__init__(self)
     self.add_unaffected_column = False
     self.hazard_classes = [
         tr('Dry Zone'),
         tr('Low Hazard Zone'),
         tr('Medium Hazard Zone'),
         tr('High Hazard Zone'),
         tr('Very High Hazard Zone'),
     ]
コード例 #4
0
 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})
     ])
コード例 #5
0
 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']
コード例 #6
0
 def __init__(self):
     """Constructor."""
     super(FloodRasterRoadsFunction, self).__init__()
     RoadExposureReportMixin.__init__(self)
コード例 #7
0
ファイル: impact_function.py プロジェクト: easmetz/inasafe
 def __init__(self):
     """Constructor."""
     super(FloodPolygonRoadsFunction, self).__init__()
     RoadExposureReportMixin.__init__(self)
     # The 'wet' variable
     self.wet = 'wet'
コード例 #8
0
 def __init__(self):
     """Constructor."""
     super(FloodRasterRoadsFunction, self).__init__()
     RoadExposureReportMixin.__init__(self)
コード例 #9
0
ファイル: impact_function.py プロジェクト: sopac/inasafe
 def __init__(self):
     """Constructor."""
     super(FloodPolygonRoadsFunction, self).__init__()
     RoadExposureReportMixin.__init__(self)
     # The 'wet' variable
     self.wet = 'wet'
コード例 #10
0
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)
コード例 #11
0
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)
コード例 #12
0
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)
コード例 #13
0
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})
        ])

    def tearDown(self):
        """Run after each test."""
        del self.road_mixin_blank
        del self.road_mixin

    def test_0001_generate_report(self):
        """Generate a blank report."""
        blank_report = self.road_mixin_blank.generate_report()
        expected_blank_report = [
            {'content': ''},
            {'content': ''},
            {'content': [u'Road Type', u'Total (m)'], 'header': True},
            {'content': [u'All', '0']},
            {'content': ''},
            {'content': u'Breakdown by road type', 'header': True},
            {'content': ''},
            {'content': ''}]
        message = 'Blank report is not as expected.'
        self.assertListEqual(blank_report, expected_blank_report, message)

    def test_0002_road_breakdown(self):
        """Test the buildings breakdown."""
        roads_breakdown = self.road_mixin.roads_breakdown()
        expected_roads_breakdown = [
            {'content': u'Breakdown by road type', 'header': True},
            {'content': ['Main', '133']},
            {'content': ['Side', '10']},
            {'content': ['Bike', '1']}]
        message = 'roads breakdown is not as expected.'
        self.assertListEqual(
            roads_breakdown,
            expected_roads_breakdown,
            message)

    def test_0003_total(self):
        """Test general methods."""
        default_length = self.road_mixin_blank.total_road_length
        length = self.road_mixin.total_road_length
        message = 'Default length is not as expected.'
        self.assertEqual(default_length, 0, message)
        message = 'Real length is not as expected.'
        self.assertEqual(length, 144.5, message)