def test_concept_autocompletes(self): self.logout() item1 = models.ObjectClass.objects.create( name="Test Item 1 (visible to tested viewers)", definition="my definition", workgroup=self.wg1, **self.defaults) item2 = models.ObjectClass.objects.create( name="Test Item 2 (NOT visible to tested viewers)", definition="my definition", workgroup=self.wg2, **self.defaults) response = self.client.get(reverse("aristotle-autocomplete:concept")) data = utils.get_json_from_response(response) self.assertEqual(len(data['results']), 0) self.login_superuser() response = self.client.get(reverse("aristotle-autocomplete:concept")) data = utils.get_json_from_response(response) self.assertEqual(len(data['results']), 2) response = self.client.get( reverse("aristotle-autocomplete:concept") + "?q=Not" # Test case insensitivity ) data = utils.get_json_from_response(response) self.assertEqual(len(data['results']), 1) self.assertEqual(str(data['results'][0]['id']), str(item2.id))
def test_concept_identifier_autocompletes(self): self.logout() item1 = models.ObjectClass.objects.create( name="Test Item 1 (visible to tested viewers)", definition="my definition", workgroup=self.wg1, **self.defaults) org = models.Organization.objects.create(name='My org', definition="None") from aristotle_mdr.contrib.identifiers.models import ScopedIdentifier, Namespace ns = Namespace.objects.create(naming_authority=org, shorthand_prefix='my_org') ScopedIdentifier.objects.create(namespace=ns, concept=item1, identifier="my_ident") self.login_superuser() response = self.client.get( reverse("aristotle-autocomplete:concept") + "?q=my_id" # test partial fails ) data = utils.get_json_from_response(response) self.assertEqual(len(data['results']), 0) response = self.client.get( reverse("aristotle-autocomplete:concept") + "?q=my_ident") data = utils.get_json_from_response(response) self.assertEqual(len(data['results']), 1) self.assertEqual(str(data['results'][0]['id']), str(item1.id))
def test_user_autocomplete_registrar(self): self.login_registrar() response = self.client.get( reverse("aristotle-autocomplete:user") ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 0) response = self.client.get( reverse("aristotle-autocomplete:user")+"?q=Grump", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 1) self.assertEqual(data['results'][0]['title'], '*****@*****.**') response = self.client.get( reverse("aristotle-autocomplete:user")+"?q=Grumpy", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 1) self.assertEqual(data['results'][0]['title'], '*****@*****.**') response = self.client.get( reverse("aristotle-autocomplete:user")+"[email protected]", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 1) self.assertEqual(data['results'][0]['title'], '*****@*****.**')
def test_user_autocomplete_workgroup_manager(self): self.login_manager() response = self.client.get(reverse("aristotle-autocomplete:user")) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(data['results'], []) response = self.client.get( reverse("aristotle-autocomplete:user") + "?q=Grump", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 0) response = self.client.get( reverse("aristotle-autocomplete:user") + "?q=Grumpy", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 1) self.assertEqual(data['results'][0]['text'], 'Grumpy') response = self.client.get( reverse("aristotle-autocomplete:user") + "[email protected]", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 1) self.assertEqual(data['results'][0]['text'], 'Grumpy')
def test_concept_autocompletes(self): self.logout() item1 = models.ObjectClass.objects.create(name="Test Item 1 (visible to tested viewers)",definition="my definition",workgroup=self.wg1,**self.defaults) item2 = models.ObjectClass.objects.create(name="Test Item 2 (NOT visible to tested viewers)",definition="my definition",workgroup=self.wg2,**self.defaults) response = self.client.get( reverse("aristotle-autocomplete:concept") ) data = utils.get_json_from_response(response) self.assertEqual(len(data['results']), 0) self.login_superuser() response = self.client.get( reverse("aristotle-autocomplete:concept") ) data = utils.get_json_from_response(response) self.assertEqual(len(data['results']), 2) response = self.client.get( reverse("aristotle-autocomplete:concept") + "?q=Not" # Test case insensitivity ) data = utils.get_json_from_response(response) self.assertEqual(len(data['results']), 1) self.assertEqual(str(data['results'][0]['id']), str(item2.id))
def test_glossary_ajax_list_public(self): self.logout() gitem = gmodels.GlossaryItem.objects.create(name="Glossary item",workgroup=self.wg1) response = self.client.get(reverse('aristotle_glossary:json_list')+'?items=%s'%gitem.id) data = utils.get_json_from_response(response)['items'] self.assertEqual(data,[]) self.ra.register(gitem, models.STATES.standard, self.su) gitem = gmodels.GlossaryItem.objects.get(pk=gitem.pk) self.assertTrue(gitem.is_public()) response = self.client.get(reverse('aristotle_glossary:json_list')+'?items=%s'%gitem.id) data = utils.get_json_from_response(response)['items'] self.assertEqual(len(data), 1) self.assertEqual(data[0]['id'], gitem.pk)
def test_malformed_glossary_ajax_list(self): self.logout() response = self.client.get(reverse('aristotle_glossary:json_list')+'?items=SELECT * FROM Users') data = utils.get_json_from_response(response) self.assertEqual(data.get('data',None),None) self.assertEqual(data['error'],"Glossary IDs must be integers")
def test_dead_cache(self): response = self.client.get(reverse('aristotle_mdr_hb:health')) details = get_json_from_response(response) self.assertEqual(response.status_code, 500) self.assertEqual(details['status_code'], 500) self.assertEqual(details['cache']['status'], "notok") self.assertTrue("error" in details['cache'].keys())
def test_dead_cache(self): response = self.client.get(reverse('aristotle_mdr_hb:health')) details = get_json_from_response(response) self.assertEqual(response.status_code, 500) self.assertEqual(details['status_code'], 500) self.assertEqual(details['cache']['status'], "notok") self.assertTrue("error" in details['cache'].keys())
def check_glossary_item(self, gitem): gitem = gmodels.GlossaryItem.objects.get(pk=gitem.pk) self.assertTrue(gitem.is_public()) response = self.client.get( reverse('aristotle_glossary:json_list') + '?items=%s' % gitem.id) data = utils.get_json_from_response(response)['items'] self.assertEqual(len(data), 1)
def test_glossary_ajax_list_editor(self): self.login_editor() ra2 = models.RegistrationAuthority.objects.create( name="Test Glossary RA") self.wg2.save() gitem = gmodels.GlossaryItem.objects.create(name="Glossary item", workgroup=self.wg2) response = self.client.get( reverse('aristotle_glossary:json_list') + '?items=%s' % gitem.id) data = utils.get_json_from_response(response)['items'] self.assertEqual(len(data), 0) s1 = models.Status.objects.create( concept=gitem, registrationAuthority=ra2, registrationDate=datetime.date(2000, 1, 1), state=self.ra.public_state, ) gitem = gmodels.GlossaryItem.objects.get(pk=gitem.pk) self.assertTrue(gitem.is_public()) response = self.client.get( reverse('aristotle_glossary:json_list') + '?items=%s' % gitem.id) data = utils.get_json_from_response(response)['items'] self.assertEqual(len(data), 1) for i in gmodels.GlossaryItem.objects.filter( pk__in=[item['id'] for item in data]): self.assertEqual(i.can_view(self.editor), True) response = self.client.get( reverse('aristotle_glossary:json_list') + '?items=%s&items=%s' % (gitem.id, self.item1.id)) data = utils.get_json_from_response(response)['items'] self.assertEqual(len(data), 2) for i in gmodels.GlossaryItem.objects.filter( pk__in=[item['id'] for item in data]): self.assertEqual(i.can_view(self.editor), True)
def test_user_autocomplete_superuser(self): num_users = get_user_model().objects.all().count() self.login_superuser() response = self.client.get( reverse("aristotle-autocomplete:user") ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), min(10, num_users)) # Autocomplete retuns a max of 10 results response = self.client.get( reverse("aristotle-autocomplete:user")+"?q=Grump", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 1) self.assertEqual(data['results'][0]['title'], '*****@*****.**') response = self.client.get( reverse("aristotle-autocomplete:user")+"?q=Grumpy", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 1) self.assertEqual(data['results'][0]['title'], '*****@*****.**') response = self.client.get( reverse("aristotle-autocomplete:user")+"[email protected]", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 1) self.assertEqual(data['results'][0]['title'], '*****@*****.**') response = self.client.get( reverse("aristotle-autocomplete:user")+"[email protected]", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), len(self.dwarves))
def test_user_autocomplete_superuser(self): num_users = get_user_model().objects.all().count() self.login_superuser() response = self.client.get( reverse("aristotle-autocomplete:user") ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), min(10, num_users)) # Autocomplete retuns a max of 10 results response = self.client.get( reverse("aristotle-autocomplete:user")+"?q=Grump", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 1) self.assertEqual(data['results'][0]['title'], '*****@*****.**') response = self.client.get( reverse("aristotle-autocomplete:user")+"?q=Grumpy", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 1) self.assertEqual(data['results'][0]['title'], '*****@*****.**') response = self.client.get( reverse("aristotle-autocomplete:user")+"[email protected]", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), 1) self.assertEqual(data['results'][0]['title'], '*****@*****.**') response = self.client.get( reverse("aristotle-autocomplete:user")+"[email protected]", ) data = get_json_from_response(response) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['results']), len(self.dwarves))
def test_concept_identifier_autocompletes(self): self.logout() item1 = models.ObjectClass.objects.create(name="Test Item 1 (visible to tested viewers)",definition="my definition",workgroup=self.wg1,**self.defaults) org = models.Organization.objects.create(name='My org', definition="None") from aristotle_mdr.contrib.identifiers.models import ScopedIdentifier, Namespace ns = Namespace.objects.create(naming_authority=org, shorthand_prefix='my_org') ScopedIdentifier.objects.create(namespace=ns,concept=item1,identifier="my_ident") self.login_superuser() response = self.client.get( reverse("aristotle-autocomplete:concept") + "?q=my_id" # test partial fails ) data = utils.get_json_from_response(response) self.assertEqual(len(data['results']), 0) response = self.client.get( reverse("aristotle-autocomplete:concept") + "?q=my_ident" ) data = utils.get_json_from_response(response) self.assertEqual(len(data['results']), 1) self.assertEqual(str(data['results'][0]['id']), str(item1.id))
def test_glossary_ajax_list_editor(self): self.login_editor() ra2 = models.RegistrationAuthority.objects.create(name="Test Glossary RA") self.wg2.save() gitem = gmodels.GlossaryItem.objects.create(name="Glossary item",workgroup=self.wg2) response = self.client.get(reverse('aristotle_glossary:json_list')+'?items=%s'%gitem.id) data = utils.get_json_from_response(response)['items'] self.assertEqual(len(data),0) s1 = models.Status.objects.create( concept=gitem, registrationAuthority=ra2, registrationDate=datetime.date(2000,1,1), state=self.ra.public_state, ) gitem = gmodels.GlossaryItem.objects.get(pk=gitem.pk) self.assertTrue(gitem.is_public()) response = self.client.get(reverse('aristotle_glossary:json_list')+'?items=%s'%gitem.id) data = utils.get_json_from_response(response)['items'] self.assertEqual(len(data),1) for i in gmodels.GlossaryItem.objects.filter(pk__in=[item['id'] for item in data]): self.assertEqual(i.can_view(self.editor),True) response = self.client.get(reverse('aristotle_glossary:json_list')+'?items=%s&items=%s'%(gitem.id,self.item1.id)) data = utils.get_json_from_response(response)['items'] self.assertEqual(len(data),2) for i in gmodels.GlossaryItem.objects.filter(pk__in=[item['id'] for item in data]): self.assertEqual(i.can_view(self.editor),True)