Beispiel #1
0
    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))
Beispiel #2
0
    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'], '*****@*****.**')
Beispiel #4
0
    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")
Beispiel #8
0
    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())
Beispiel #10
0
    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)
Beispiel #11
0
    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))
Beispiel #13
0
    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)