예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
    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)
예제 #6
0
    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)
예제 #7
0
    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)
예제 #8
0
    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)
예제 #9
0
    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)
예제 #10
0
    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)
예제 #11
0
    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,
            },
        }
예제 #12
0
 def setUp(self):
     self.Address2List = Address2Factory.create_batch(20)
     SiteSettingsFactory.create()