Exemple #1
0
    def test_resolve_zones_from_json(self):
        Fake, FakeForm = self.factory()
        zone = GeoZoneFactory()

        zone = GeoZoneFactory(validity__end=END_OF_TIME)
        for i in range(3):
            start = zone.validity.start - (i + 1) * A_YEAR
            end = zone.validity.start - i * A_YEAR
            GeoZoneFactory(code=zone.code,
                           validity__start=start,
                           validity__end=end)

        validity = faker.date_between(start_date=zone.validity.start,
                                      end_date=zone.validity.end)
        geoid = '{0.level}:{0.code}@{1}'.format(zone, validity.isoformat())

        fake = Fake()
        form = FakeForm.from_json({
            'spatial': {
                'zones': [geoid],
                'granularity': faker.spatial_granularity()
            }
        })

        form.validate()
        self.assertEqual(form.errors, {})

        form.populate_obj(fake)

        self.assertEqual(len(fake.spatial.zones), 1)
        self.assertEqual(fake.spatial.zones[0], zone)
Exemple #2
0
    def test_resolve_zones_from_json(self):
        Fake, FakeForm = self.factory()
        zone = GeoZoneFactory()

        zone = GeoZoneFactory(validity__end=END_OF_TIME)
        for i in range(3):
            start = zone.validity.start - (i + 1) * A_YEAR
            end = zone.validity.start - i * A_YEAR
            GeoZoneFactory(code=zone.code,
                           validity__start=start, validity__end=end)

        validity = faker.date_between(start_date=zone.validity.start,
                                      end_date=zone.validity.end)
        geoid = '{0.level}:{0.code}@{1}'.format(zone, validity.isoformat())

        fake = Fake()
        form = FakeForm.from_json({
            'spatial': {
                'zones': [geoid],
                'granularity': faker.spatial_granularity()
            }
        })

        form.validate()
        self.assertEqual(form.errors, {})

        form.populate_obj(fake)

        self.assertEqual(len(fake.spatial.zones), 1)
        self.assertEqual(fake.spatial.zones[0], zone)
Exemple #3
0
    def test_resolve_with_validity_match(self):
        zone = GeoZoneFactory(validity__end=END_OF_TIME)
        for i in range(3):
            start = zone.validity.start - (i + 1) * A_YEAR
            end = zone.validity.start - i * A_YEAR
            GeoZoneFactory(code=zone.code,
                           validity__start=start, validity__end=end)

        validity = faker.date_between(start_date=zone.validity.start,
                                      end_date=zone.validity.end)
        geoid = '{0.level}:{0.code}@{1}'.format(zone, validity.isoformat())
        result = GeoZone.objects.resolve(geoid)

        self.assertEqual(result, zone)
Exemple #4
0
    def test_resolve_with_validity_match(self):
        zone = GeoZoneFactory(validity__end=END_OF_TIME)
        for i in range(3):
            start = zone.validity.start - (i + 1) * A_YEAR
            end = zone.validity.start - i * A_YEAR
            GeoZoneFactory(code=zone.code,
                           validity__start=start, validity__end=end)

        validity = faker.date_between(start_date=zone.validity.start,
                                      end_date=zone.validity.end)
        geoid = '{0.level}:{0.code}@{1}'.format(zone, validity.isoformat())
        result = GeoZone.objects.resolve(geoid)

        self.assertEqual(result, zone)