Ejemplo n.º 1
0
 def setUpTestData(cls):
     cls.service = services.DefinitionGathering
     cls.fake_def_1 = factories.DefinitionFactory(value='l')
     cls.fake_def_2 = factories.DefinitionFactory(value='o')
     cls.fake_def_3 = factories.DefinitionFactory(value='e')
     cls.fake_def_4 = factories.DefinitionFactory(value='d', active=False)
     cls.objects = [cls.fake_def_1, cls.fake_def_2, cls.fake_def_3]
Ejemplo n.º 2
0
 def setUpTestData(cls):
     cls.client = test.Client()
     cls.term = factories.TermFactory(value='fake term')
     cls.definition_foo = factories.DefinitionFactory(
         uuid='cb8d30f8-b60a-46e8-9cad-f3d5ff28d269',
         term=cls.term,
         value='foo',
     )
     cls.definition_bar = factories.DefinitionFactory(
         uuid='75484634-4f96-4bc9-8d94-bfe8523ba7cd',
         term=cls.term,
         value='bar',
     )
     cls.url = reverse('term-detail', kwargs={'slug': cls.term.slug})
Ejemplo n.º 3
0
    def test_definitions(self):
        definition_foo = factories.DefinitionFactory(term=self.term,
                                                     value='foo')
        definition_bar = factories.DefinitionFactory(term=self.term,
                                                     value='bar')
        factories.DefinitionFactory(value='qux')

        queryset = models.Definition.objects.filter(
            pk__in=[definition_foo.pk, definition_bar.pk]
        )
        self.assertQuerysetEqual(self.term.definitions,
                                 queryset,
                                 ordered=False,
                                 transform=lambda x: x)
Ejemplo n.º 4
0
 def setUpTestData(cls):
     cls.client = test.Client()
     cls.foo_term = factories.TermFactory(value='foo term')
     cls.bar_term = factories.TermFactory(value='bar term')
     cls.definition_foo = factories.DefinitionFactory(
         uuid='b3ec0487-d422-4d0e-86c0-0b80402fb012',
         term=cls.foo_term,
         value='foo',
     )
     cls.definition_bar = factories.DefinitionFactory(
         uuid='8ce7d087-b231-4562-b43f-dd27c7af7eba',
         term=cls.bar_term,
         value='bar',
     )
     cls.url = reverse('term-search')
Ejemplo n.º 5
0
    def test_has_definition(self):
        definition = factories.DefinitionFactory(value='fake definition')

        response = self.client.get(reverse('sitemap'))

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, definition.get_absolute_url())
Ejemplo n.º 6
0
    def test_update_definition_dont_send_an_email(self):
        self.client.login(username=self.user.username,
                          password='******')

        self.assertEqual(len(mail.outbox), 0)

        definition = factories.DefinitionFactory(
            value='fake definition',
            user=self.user,
        )
        self.assertEqual(models.Definition.objects.count(), 1)

        self.assertEqual(len(mail.outbox), 1)

        url = reverse(
            'definition-update',
            kwargs={'uuid': definition.uuid}
        )

        form_data = {'term': 'fake term', 'value': 'modified definition'}
        form_data.update(self.management_data)

        response = self.client.post(url, form_data, follow=True)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(models.Definition.objects.count(), 1)
        self.assertEqual(len(mail.outbox), 1)
Ejemplo n.º 7
0
    def test_update_definition__change_term_multiple_defs(self):
        other_def = factories.DefinitionFactory(term=self.definition.term)

        self.assertEqual(models.Term.objects.count(), 1)
        self.assertEqual(models.Definition.objects.count(), 2)
        self.assertEqual(
            self.definition.uuid,
            '869fc83b-2004-428d-9870-9089a8f29f20',
        )
        self.assertEqual(self.definition.term.value, 'term fake')
        self.assertEqual(self.definition.value, 'definition fake')
        self.assertEqual(self.definition.user, self.user)

        self._login()

        form_data = {
            'term': 'updated term fake',
            'value': 'updated fake definition',
        }
        form_data.update(self.management_data)

        response = self.client.post(self.url, form_data, follow=True)

        self.assertEqual(response.status_code, 200)

        self.assertEqual(models.Term.objects.count(), 2)
        self.assertEqual(models.Definition.objects.count(), 2)

        first_term = models.Term.objects.get(value='term fake')
        second_term = models.Term.objects.get(value='updated term fake')

        self.assertEqual(first_term.definitions.count(), 1)
        self.assertEqual(first_term.definitions.first(), other_def)
        self.assertEqual(second_term.definitions.count(), 1)
        self.assertEqual(second_term.definitions.first(), self.definition)
Ejemplo n.º 8
0
 def setUp(self):
     definition = factories.DefinitionFactory(
         uuid='13bf0f68-eeb2-4777-a739-6ee5be30bacc',
         value='fake_definition',
     )
     factories.ExampleFactory(definition=definition)
     self.client = test.Client()
     self.url = reverse('index')
Ejemplo n.º 9
0
    def test_has_link_to_definition_detail(self):
        definition = factories.DefinitionFactory(value='fake definition')

        response = self.client.get(self.url)

        self.assertContains(
            response,
            f'<a href="{definition.get_absolute_url()}">&#128279;</a>',
            html=True)
Ejemplo n.º 10
0
 def setUp(self):
     self.client = test.Client()
     self.user = auth_factories.UserFactory()
     self.definition = factories.DefinitionFactory(
         uuid='869fc83b-2004-428d-9870-9089a8f29f20',
         user=self.user,
     )
     self.url = reverse('definition-disable',
                        kwargs={'uuid': self.definition.uuid})
Ejemplo n.º 11
0
    def test_has_link_to_term_detail(self):
        term = factories.TermFactory(value='my fake term')
        factories.DefinitionFactory(term=term, value='fake definition')
        response = self.client.get(self.url)

        self.assertContains(
            response,
            f'<a href="{term.get_absolute_url()}">my fake term</a>',
            html=True)
Ejemplo n.º 12
0
 def setUpTestData(cls):
     cls.client = test.Client()
     cls.user = auth_factories.UserFactory()
     cls.definition = factories.DefinitionFactory(
         uuid='869fc83b-2004-428d-9870-9089a8f29f20',
         user=cls.user,
     )
     cls.url = reverse('definition-disable',
                       kwargs={'uuid': cls.definition.uuid})
Ejemplo n.º 13
0
    def test_has_link_current_page(self):
        factories.DefinitionFactory()
        response = self.client.get(self.url)

        html_text = ('<a class="page-link" href="#">'
                     '1'
                     '<span class="sr-only">(current)</span>'
                     '</a>')
        self.assertContains(response, html_text, html=True)
Ejemplo n.º 14
0
    def test_has_tags(self):
        factories.DefinitionFactory(value='fake definition',
                                    tags='first_tag, second_tag')

        response = self.client.get(self.url)

        tag_html = '<a href="{}" class="badge badge-pill badge-info">{}</a>'

        for tag in ('first_tag', 'second_tag'):
            email_link = '/tags/{}/definitions/'.format(tag)
            self.assertContains(response, tag_html.format(email_link, tag))
Ejemplo n.º 15
0
    def test_has_tags(self):
        factories.DefinitionFactory(value='fake definition', tags='tag1, tag3')

        response = self.client.get(reverse('sitemap'))

        self.assertEqual(response.status_code, 200)

        for tag in ('tag1', 'tag3'):
            self.assertContains(
                response,
                reverse('definitions-by-tag', kwargs={'tag_name': tag}))
Ejemplo n.º 16
0
 def setUp(self):
     self.client = test.Client()
     self.user = auth_factories.UserFactory()
     self.term = factories.TermFactory(value='fake term')
     self.definition = factories.DefinitionFactory(
         uuid='6b4a7a9f-3b8f-494b-8565-f960065802ba',
         term=self.term,
         value='fake definition',
         user=self.user,
     )
     self.url = self.definition.get_absolute_url()
Ejemplo n.º 17
0
 def setUpTestData(cls):
     cls.client = test.Client()
     cls.user = auth_factories.UserFactory()
     cls.term = factories.TermFactory(value='fake term')
     cls.definition = factories.DefinitionFactory(
         uuid='6b4a7a9f-3b8f-494b-8565-f960065802ba',
         term=cls.term,
         value='fake definition',
         user=cls.user,
     )
     cls.url = cls.definition.get_absolute_url()
Ejemplo n.º 18
0
    def test_term_search_form_is_working(self):
        foo_term = factories.TermFactory(value='foo term')
        bar_term = factories.TermFactory(value='bar term')
        factories.DefinitionFactory(term=foo_term, value='foo')
        factories.DefinitionFactory(term=bar_term, value='bar')
        foo_term_html = '<a href="{}">foo term</a>'.format(
            foo_term.get_absolute_url())
        bar_term_html = '<a href="{}">bar term</a>'.format(
            bar_term.get_absolute_url())
        with splinter.Browser('django') as browser:
            browser.visit(self.url)

            self.assertIn(foo_term_html, browser.html)
            self.assertIn(bar_term_html, browser.html)

            browser.fill('v', 'f')
            browser.find_by_id('form-button').click()

            self.assertEqual(browser.url, reverse('term-search'))
            self.assertIn(foo_term_html, browser.html)
            self.assertNotIn(bar_term_html, browser.html)
Ejemplo n.º 19
0
    def test_has_examples(self):
        definition = factories.DefinitionFactory(value='fake definition')

        response = self.client.get(self.url)

        self.assertNotContains(response, 'fake example')

        factories.ExampleFactory(definition=definition, value='fake example')

        response = self.client.get(self.url)

        self.assertContains(response, 'fake example')
Ejemplo n.º 20
0
    def test_inactive_definitions_does_not_appear(self):
        definition = factories.DefinitionFactory(value='fake definition')

        response = self.client.get(self.url)

        self.assertContains(response, 'fake definition')

        definition.active = False
        definition.save()

        response = self.client.get(self.url)

        self.assertNotContains(response, 'fake definition')
Ejemplo n.º 21
0
    def test_has_link_to_next_page(self):
        num_items_per_page = views.IndexView.paginate_by

        for item in range(num_items_per_page + 1):
            factories.DefinitionFactory()

        response = self.client.get(self.url)

        self.assertContains(response,
                            '<a class="page-link" href="?page=2">2</a>',
                            html=True)
        self.assertContains(
            response,
            '<a class="page-link" href="?page=2">Siguiente &#8594;</a>',
            html=True)
Ejemplo n.º 22
0
    def test_has_link_to_next_page(self):
        num_items_per_page = views.TermSearchView.paginate_by

        for n, item in enumerate(range(num_items_per_page + 1)):
            term = factories.TermFactory(value='a' * (n + 1))
            factories.DefinitionFactory(term=term)

        url = '{}?{}'.format(self.url, http.urlencode({'v': 'a'}))
        response = self.client.get(url)

        self.assertContains(response,
                            '<a class="page-link" href="?page=2">2</a>',
                            html=True)
        self.assertContains(
            response,
            '<a class="page-link" href="?page=2">Siguiente &#8594;</a>',
            html=True)
Ejemplo n.º 23
0
    def test_has_link_to_first_page(self):
        num_items_per_page = views.IndexView.paginate_by

        for item in range(num_items_per_page + 1):
            factories.DefinitionFactory()

        url = f'{self.url}?page=2'

        response = self.client.get(url)

        self.assertContains(response,
                            '<a class="page-link" href="?page=1">1</a>',
                            html=True)
        self.assertContains(
            response,
            '<a class="page-link" href="?page=1">&#8592; Anterior</a>',
            html=True)
Ejemplo n.º 24
0
    def test_has_link_to_first_page(self):
        num_items_per_page = views.IndexView.paginate_by

        for n, item in enumerate(range(num_items_per_page + 1)):
            term = factories.TermFactory(value='a' * (n + 1))
            factories.DefinitionFactory(term=term)

        url = '{}?{}'.format(self.url, http.urlencode({'v': 'a', 'page': 2}))
        response = self.client.get(url)

        response = self.client.get(url)

        self.assertContains(response,
                            '<a class="page-link" href="?page=1">1</a>',
                            html=True)
        self.assertContains(
            response,
            '<a class="page-link" href="?page=1">&#8592; Anterior</a>',
            html=True)
Ejemplo n.º 25
0
    def test_recaptcha_failed__already_existing_term(self,
                                                     recaptcha_clean_mock):
        def _validation_error_side_effect(values):
            raise exceptions.ValidationError(
                'Connection to reCaptcha server failed',
                code='connection_failed')

        recaptcha_clean_mock.side_effect = _validation_error_side_effect

        self.term = factories.TermFactory(value='fake term')
        self.definition = factories.DefinitionFactory(
            uuid='6b4a7a9f-3b8f-494b-8565-f960065802ba',
            term=self.term,
            value='fake definition 1',
            user=self.user,
        )

        self.assertEqual(models.Term.objects.count(), 1)
        self.assertEqual(models.Definition.objects.count(), 1)

        form_data = {'term': 'fake term', 'value': 'fake definition 2'}
        form_data.update(self.management_data)

        response = self.client.post(self.url, form_data, follow=True)

        self.assertEqual(response.status_code, 200)

        recaptcha_clean_mock.assert_called_once()

        self.assertEqual(models.Term.objects.count(), 1)
        self.assertEqual(models.Term.all_objects.count(), 1)
        self.assertEqual(models.Definition.objects.count(), 1)

        self.assertEqual(
            models.Term.all_objects.first().value,
            'fake term',
        )
        self.assertEqual(
            models.Definition.all_objects.first().value,
            'fake definition 1',
        )
Ejemplo n.º 26
0
 def setUpTestData(cls):
     cls.client = test.Client()
     cls.user = auth_factories.UserFactory()
     cls.definition = factories.DefinitionFactory(
         uuid='869fc83b-2004-428d-9870-9089a8f29f20',
         user=cls.user,
     )
     cls.url = reverse('definition-update',
                       kwargs={'uuid': cls.definition.uuid})
     cls.management_data = {
         "example_set-TOTAL_FORMS": "2",
         "example_set-INITIAL_FORMS": "0",
         "example_set-MIN_NUM_FORMS": "0",
         "example_set-MAX_NUM_FORMS": "5",
         "example_set-0-value": "",
         "example_set-0-id": "",
         "example_set-0-definition": "",
         "example_set-1-value": "",
         "example_set-1-id": "",
         "example_set-1-definition": ""
     }
Ejemplo n.º 27
0
 def setUp(self):
     self.definition = factories.DefinitionFactory(
         value='my fake definition')
Ejemplo n.º 28
0
 def setUpTestData(cls):
     factories.DefinitionFactory(tags='a fake tag, othertag')
     cls.client = test.Client()
     cls.url = reverse('tag-list')
Ejemplo n.º 29
0
 def setUp(self):
     self.service = services.DefinitionGathering
     self.fake_def_1 = factories.DefinitionFactory(value='l')
     self.fake_def_2 = factories.DefinitionFactory(value='o')
     self.fake_def_3 = factories.DefinitionFactory(value='e')
     self.objects = [self.fake_def_1, self.fake_def_2, self.fake_def_3]