def test_filter_by_address1(self): Address2.objects.all().delete() Address2Factory.create_batch(20) original = Address2.objects.all()[0] self.Address2List = Address2Factory.create_batch(20) matches = match_location(original.address1.name, original.name) # Address2Factory associates a new Address1 with each Address2 self.assertEqual(len(matches), 1)
def test_filter_by_address1_multiple_address2s(self): Address2.objects.all().delete() Address2Factory.create_batch(20) # Associate a new Address2 with the first Address2s Address1 original = Address2.objects.all()[0] second = Address2.objects.all()[1] second.address1 = original.address1 second.save() # Now there should only be 2 valid Address2s for this address1 matches = match_location(original.address1.name, original.name) self.assertEqual(len(matches), 2)
def test_address_related_items_swap(self): address2 = Address2Factory.create(canonical_name=Address2Factory.create()) related_address2 = Address2Factory.create() related_address2.canonical_name = address2 related_address2.save() person = PersonFactory.create(address2=address2) vif = VifFactory.create(victim_guardian_address2=address2) viflb = VictimInterviewLocationBoxFactory.create(address2=address2) url = reverse('Address2RelatedItemsSwap', args=[address2.id, related_address2.id]) response = self.client.delete(url) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_remove_address2_with_related_items__should_not_work(self): address2 = Address2Factory.create() related_address2 = Address2Factory.create(canonical_name=address2) person = PersonFactory.create(address2=address2) vif = VifFactory.create(victim_guardian_address2=address2) url = reverse('Address2detail', args=[address2.id]) for related_object in [related_address2, person, vif]: response = self.client.delete(url) self.assertEqual(response.status_code, status.HTTP_409_CONFLICT) related_object.delete() # All related objects are deleted now, so the Address should be able to be deleted now response = self.client.delete(url) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
def test_retrieve_address2(self): address2 = Address2Factory.create() url = reverse('Address2detail', args=[address2.id]) response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['id'], address2.id) self.assertEqual(response.data['name'], address2.name)
def test_remove_address2(self): address2 = Address2Factory.create() url = reverse('Address2detail', args=[address2.id]) response = self.client.delete(url) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) # Check that the address doesn't exist anymore response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
def test_retrieve_related_items_address2(self): address2 = Address2Factory.create() related_address2 = Address2Factory.create(canonical_name=address2) person = PersonFactory.create(address2=address2) vif = VifFactory.create(victim_guardian_address2=address2) mapperD = {'person': person, 'victiminterview': vif, 'address2': related_address2 } url = reverse('Address2RelatedItems', args=[address2.id]) response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['id'], address2.id) related_items = response.data['related_items'] for item in related_items: if item['type'] in mapperD: self.assertEqual(True, mapperD[item['type']].id in [obj['id'] for obj in item['objects']]) self.assertEqual(response.data['id'], address2.id)
def test_address_related_items_swap(self): address2 = Address2Factory.create(canonical_name=Address2Factory.create()) related_address2 = Address2Factory.create() related_address2.canonical_name = address2 related_address2.save() new_address2 = Address2Factory.create() person = PersonFactory.create(address2=address2) vif = VifFactory.create(victim_guardian_address2=address2) viflb = VictimInterviewLocationBoxFactory.create(address2=address2) url = reverse('Address2RelatedItemsSwap', args=[address2.id, new_address2.id]) response = self.client.delete(url) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(Address2.objects.filter(address2=address2).count(), 0) self.assertEqual(VictimInterview.objects.filter(victim_guardian_address2=address2).count(), 0) self.assertEqual(VictimInterviewLocationBox.objects.filter(address2=address2).count(), 0) self.assertEqual(Person.objects.filter(address2=address2).count(), 0) self.assertEqual(Person.objects.filter(address2=new_address2).count(), 1) self.assertEqual(Address2.objects.filter(address2=new_address2).count(), 1) self.assertEqual(VictimInterview.objects.filter(victim_guardian_address2=new_address2).count(), 1) self.assertEqual(VictimInterviewLocationBox.objects.filter(address2=new_address2).count(), 1)
def test_update_address2_canonical_name_null(self): # Should be able to save address2 with null canonical name address2 = Address2Factory.create() url = reverse('Address2detail', args=[address2.id]) self.data['id'] = address2.id self.data['name'] = "Address2Updated" self.data["canonical_name"] = {"id": -1, "name": "Null"} response = self.client.put(url, self.data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertIsNotNone(response.data['id']) self.assertEqual(response.data['name'], 'Address2Updated') self.assertEqual(response.data['address1']['id'], self.first_address1.id) self.assertEqual(response.data['canonical_name'], None)
def test_update_address2(self): address2 = Address2Factory.create() url = reverse('Address2detail', args=[address2.id]) self.data['id'] = address2.id self.data['name'] = "Address2Updated" self.data["level"] = "District" self.data["latitude"] = 29.1337 self.data["longitude"] = 81.188118 response = self.client.put(url, self.data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['name'], 'Address2Updated') self.assertEqual(response.data['id'], address2.id) self.assertEqual(response.data["level"], "District") self.assertEqual(response.data["latitude"], 29.1337) self.assertEqual(response.data["longitude"], 81.188118)
def setUp(self): self.user = Address2UserFactory.create() self.client.force_authenticate(user=self.user) self.Address2List = Address2Factory.create_batch(20) self.factory = APIRequestFactory() self.first_address1 = self.Address2List[0].address1 self.first_canonical_name = self.Address2List[0].canonical_name self.data = { 'name': 'Address2', "verified": False, "address1": { "id": self.first_address1.id, "name": self.first_address1.name, }, "canonical_name": { "id": self.first_canonical_name.id, "name": self.first_canonical_name.name, }, }
def setUp(self): self.Address2List = Address2Factory.create_batch(20) SiteSettingsFactory.create()