def test_adding_category_triggers_reindex(self): c = Category.objects.create(name='Children', slug='children') self.service.categories.add(c) self.service.save() queryset = Fixtures.es_connection() result = get_service(queryset, self.service.id)[0] self.assertEqual(result['categories'][0]['name'], 'Children')
def test_rename_is_reflected_in_index(self): self.org.name = "Renamed Test Org" self.org.save() queryset = Fixtures.es_connection() indexed_service = get_service(queryset, self.service.id)[0] self.assertEqual(indexed_service['organisation']['name'], self.org.name)
def test_org_delete_cascades(self): queryset = Fixtures.es_connection() service_id = self.service.id Organisation.objects.get(name="TestOrg").delete() s = Service.objects.filter(name="My First Service").exists() self.assertFalse(s) result = get_service(queryset, service_id) self.assertEqual(len(result), 0)
def test_service_not_in_removed_category(self): queryset = Fixtures.es_connection() c = Category.objects.get(slug='food-nutrition') self.service.categories.add(c) self.service.save() indexed_service = get_service(queryset, self.service.id)[0] self.assertEqual(len(indexed_service['categories']), 1) c.delete() indexed_service = get_service(queryset, self.service.id)[0] self.assertEqual(len(indexed_service['categories']), 0)
def test_unpublished_service_is_not_indexed(self): queryset = Fixtures.es_connection() self.org.published = False self.org.save() unpublished_service = Service.objects.create( name="My Second Service", description="A handy service", organisation=self.org, created_by=self.org.created_by) result = get_service(queryset, unpublished_service.id) self.assertEqual(len(result), 0)
def setUp(self): t, u, c, _ = Fixtures.create_users() self.org = Fixtures.create_organisation(t, u, c) self.org2 = Organisation.objects.create( name="Test0rg", description="A test description", created_by=self.org.created_by, updated_by=self.org.updated_by) self.org3 = Organisation.objects.create( name="Another org", description="A Test0rg description", created_by=self.org.created_by, updated_by=self.org.updated_by) location1 = Fixtures.create_location(self.org) location2 = Fixtures.create_another_location(self.org) self.s1 = Service.objects.create(name="Food For All", description="A handy food activity", organisation=self.org, created_by=t, updated_by=u) self.s2 = Service.objects.create( name="Physical Fun", description="Physical activity classes", organisation=self.org, created_by=t, updated_by=u) self.s3 = Service.objects.create( name="Step Fit 1", description="Physical activity classes", organisation=self.org, created_by=t, updated_by=u) self.s4 = Service.objects.create( name="Step Fit 2", description="Phyzical activiti classes", organisation=self.org, created_by=t, updated_by=u) self.s1.locations.add(location1) self.s1.save() self.s2.locations.add(location1) self.s2.save() self.s3.locations.add(location1) self.s3.save() self.s4.locations.add(location2) self.s4.save() pks = [self.s1.pk, self.s2.pk, self.s3.pk, self.s4.pk] self.queryset = get_services(Fixtures.es_connection(), pks)
def test_service_has_renamed_category(self): c = Category.objects.get(slug='food-nutrition') self.service.categories.add(c) self.service.save() c.name = "food and nutrition" c.save() queryset = Fixtures.es_connection() indexed_service = get_service(queryset, self.service.id)[0] is_categorised = c.services.filter(id=self.service.id).exists() is_reindexed = c.name == indexed_service['categories'][0]['name'] self.assertTrue(is_categorised) self.assertTrue(is_reindexed)
def test_service_last_edited_valid_update(self): old_last_edited_db = self.service.last_edited category = Category.objects.first() response = self.client.post(reverse('service_edit', kwargs={ 'pk': self.service.pk }),{ 'name': 'an updated service', 'description': 'a full description', 'categories': [category.pk], 'service_areas': [ServiceArea.objects.first().pk] }) self.service.refresh_from_db() queryset = Fixtures.es_connection() result = get_service(queryset, self.service.id)[0] new_last_edited_db = self.service.last_edited new_last_edited_db_string = datetime.strftime(new_last_edited_db, '%Y-%m-%dT%H:%M:%S.%f%z') new_last_edited_db_string = new_last_edited_db_string.split('+0000')[0] + '+00:00' new_last_edited_es = result.last_edited self.assertFalse(old_last_edited_db == new_last_edited_db) self.assertEqual(new_last_edited_db_string, new_last_edited_es)
def test_service_valid_update(self): category = Category.objects.first() response = self.client.post(reverse('service_edit', kwargs={ 'pk': self.service.pk }),{ 'name': 'an updated service', 'description': 'a full description', 'categories': [category.pk], 'service_areas': [ServiceArea.objects.first().pk] }) self.service.refresh_from_db() queryset = Fixtures.es_connection() result = get_service(queryset, self.service.id)[0] category_count = len(result['categories']) self.assertEqual(category_count, 1) self.assertEqual(result['categories'][0]['name'], category.name) self.assertEqual(self.service.name, 'an updated service') self.assertEqual(self.service.slug, 'an-updated-service') self.assertEqual(self.service.updated_by, self.claimant) self.assertEqual(response.status_code, 302)
def test_organisation_publish(self): queryset = Fixtures.es_connection() org_queryset = Fixtures.es_organisation_connection() self.organisation.published = False self.organisation.save() unpublished_service = Fixtures.create_service(self.organisation) index_result = get_service(queryset, unpublished_service.id) self.client.login(username='******', password='******') self.assertEqual(len(index_result), 0) response = self.client.post( reverse('organisation_publish', kwargs={'pk': self.organisation.pk})) self.organisation.refresh_from_db() index_result = get_service(queryset, unpublished_service.id) self.assertEqual(len(index_result), 1) self.assertTrue(self.organisation.published) self.assertEqual(response.status_code, 302) self.assertRedirects(response, (reverse('organisation_unpublished'))) org_index_result = get_organisation_by_id(org_queryset, self.organisation.id) self.assertEqual(len(org_index_result), 1)
def test_service_update_reindexes(self): queryset = Fixtures.es_connection() self.service.name = "My Updated Service" self.service.save() result = get_service(queryset, self.service.id)[0] self.assertEqual(result['name'], self.service.name)
def test_deleted_service_is_not_in_index(self): queryset = Fixtures.es_connection() service_id = self.service.id self.service.delete() result = get_service(queryset, service_id) self.assertEqual(len(result), 0)
def test_new_service_is_indexed(self): queryset = Fixtures.es_connection() result = get_service(queryset, self.service.id) self.assertEqual(len(result), 1)