def test_with_initial(self): Fake, FakeForm = self.factory() zones = [GeoZoneFactory() for _ in range(3)] fake = Fake(spatial=SpatialCoverage(zones=zones, granularity=random_spatial_granularity())) zone = GeoZoneFactory() data = MultiDict({"spatial-zones": zone.id, "spatial-granularity": random_spatial_granularity()}) form = FakeForm(data, fake) form.validate() self.assertEqual(form.errors, {}) form.populate_obj(fake) self.assertEqual(len(fake.spatial.zones), 1) self.assertEqual(fake.spatial.zones[0], zone)
def test_with_zone_empty_string(self): Fake, FakeForm = self.factory() fake = Fake() form = FakeForm(MultiDict({"spatial-zones": "", "spatial-granularity": random_spatial_granularity()})) form.validate() self.assertEqual(form.errors, {}) form.populate_obj(fake) self.assertEqual(len(fake.spatial.zones), 0)
def test_with_initial(self): Fake, FakeForm = self.factory() zones = [GeoZoneFactory() for _ in range(3)] fake = Fake(spatial=SpatialCoverage( zones=zones, granularity=random_spatial_granularity())) zone = GeoZoneFactory() data = MultiDict({ 'spatial-zones': zone.id, 'spatial-granularity': random_spatial_granularity() }) form = FakeForm(data, fake) form.validate() self.assertEqual(form.errors, {}) form.populate_obj(fake) self.assertEqual(len(fake.spatial.zones), 1) self.assertEqual(fake.spatial.zones[0], zone)
def test_with_valid_zone_from_json(self): Fake, FakeForm = self.factory() zone = GeoZoneFactory() fake = Fake() form = FakeForm.from_json({"spatial": {"zones": zone.id, "granularity": random_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)
def test_with_valid_zone(self): Fake, FakeForm = self.factory() zone = GeoZoneFactory() fake = Fake() form = FakeForm(MultiDict({"spatial-zones": zone.id, "spatial-granularity": random_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)
def test_with_zone_empty_string(self): Fake, FakeForm = self.factory() fake = Fake() form = FakeForm( MultiDict({ 'spatial-zones': '', 'spatial-granularity': random_spatial_granularity() })) form.validate() self.assertEqual(form.errors, {}) form.populate_obj(fake) self.assertEqual(len(fake.spatial.zones), 0)
def test_with_valid_zone(self): Fake, FakeForm = self.factory() zone = GeoZoneFactory() fake = Fake() form = FakeForm( MultiDict({ 'spatial-zones': zone.id, 'spatial-granularity': random_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)
def test_with_valid_zone_ids_from_json(self): Fake, FakeForm = self.factory() zones = [GeoZoneFactory() for _ in range(3)] fake = Fake() form = FakeForm.from_json( {"spatial": {"zones": ",".join([z.id for z in zones]), "granularity": random_spatial_granularity()}} ) form.validate() self.assertEqual(form.errors, {}) form.populate_obj(fake) self.assertEqual(len(fake.spatial.zones), len(zones)) expected_zones = dict((z.id, z) for z in zones) for zone in fake.spatial.zones: self.assertIn(zone.id, expected_zones) self.assertEqual(zone, expected_zones[zone.id])
def test_with_valid_zone_from_json(self): Fake, FakeForm = self.factory() zone = GeoZoneFactory() fake = Fake() form = FakeForm.from_json({ 'spatial': { 'zones': zone.id, 'granularity': random_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)
def test_with_valid_zone_ids(self): Fake, FakeForm = self.factory() zones = [GeoZoneFactory() for _ in range(3)] fake = Fake() form = FakeForm( MultiDict({ 'spatial-zones': ','.join([z.id for z in zones]), 'spatial-granularity': random_spatial_granularity() })) form.validate() self.assertEqual(form.errors, {}) form.populate_obj(fake) self.assertEqual(len(fake.spatial.zones), len(zones)) expected_zones = dict((z.id, z) for z in zones) for zone in fake.spatial.zones: self.assertIn(zone.id, expected_zones) self.assertEqual(zone, expected_zones[zone.id])