Exemple #1
0
class ConnectionCreateViewTest(TestCase):
    def setUp(self):
        self.site = LearningSiteFactory()
        self.parent = LearningSiteFactory()

    def test_get_form(self):
        view = ConnectionCreateView()
        view.parent = self.parent
        view.request = RequestFactory()
        view.request.method = 'GET'

        frm = view.get_form()
        self.assertEquals(frm.fields['site'].queryset.count(), 1)
        self.assertEquals(frm.fields['site'].queryset[0], self.site)

    def test_form_valid_associates(self):
        site = LearningSiteFactory()
        frm = ConnectionForm()
        frm.cleaned_data = {'connection_type': 'associate', 'site': site}
        view = ConnectionCreateView()
        view.parent = self.parent
        view.form_valid(frm)

        self.assertTrue(len(self.parent.associates()), 1)
        self.assertEquals(self.parent.associates()[0], site)
Exemple #2
0
    def setUp(self):
        self.site = LearningSiteFactory()
        self.parent = LearningSiteFactory()

        editor = UserFactory()
        editor.groups.add(GroupFactory(name='Editor'))
        self.client.login(username=editor.username, password='******')
Exemple #3
0
    def test_get_min_year(self):
        LearningSiteFactory(established=None, defunct=None)
        LearningSiteFactory()

        dt = ExtendedDateFactory(edtf_format='1918')
        LearningSiteFactory(established=None, defunct=dt)

        view = MapView()
        qs = LearningSite.objects.all()
        self.assertEquals(view.get_min_year(qs), 1918)
Exemple #4
0
    def setUp(self):
        self.site1 = LearningSiteFactory(
            title='Site Alpha', description='the first')
        self.site2 = LearningSiteFactory(
            title='Site Beta', established=None, defunct=None)

        dt1 = ExtendedDateFactory(edtf_format='1918')
        dt2 = ExtendedDateFactory(edtf_format='1932')
        self.site3 = LearningSiteFactory(
            title='Site Gamma', established=dt1, defunct=dt2)

        self.site3.tags.add('red')
Exemple #5
0
    def test_connections(self):
        parent = LearningSiteFactory()
        sib = LearningSiteFactory()
        sib2 = LearningSiteFactory()

        LearningSiteRelationshipFactory(site_one=parent, site_two=sib)
        LearningSiteRelationshipFactory(site_one=sib2, site_two=parent)

        ids = parent.connections()
        self.assertEquals(len(ids), 2)

        self.assertTrue(sib.id in ids)
        self.assertTrue(sib2.id in ids)
Exemple #6
0
    def setUp(self):
        self.site = LearningSiteFactory()

        grp = GroupFactory(name='Editor')

        self.editor = UserFactory()
        self.editor.groups.add(grp)

        self.creator = UserFactory()
        self.creator.groups.add(grp)

        self.site = LearningSiteFactory(created_by=self.creator)
        self.url = reverse('site-delete-view', kwargs={'pk': self.site.id})
Exemple #7
0
    def test_family(self):
        parent = LearningSiteFactory()
        sib = LearningSiteFactory()
        sib2 = LearningSiteFactory()

        LearningSiteRelationshipFactory(site_one=parent, site_two=sib)
        LearningSiteRelationshipFactory(site_one=sib2, site_two=parent)

        family = LearningSiteFamilySerializer().get_family(parent)
        self.assertEquals(len(family), 2)
        self.assertEquals(family[0]['id'], sib.id)
        self.assertEquals(family[0]['relationship'], 'associate')
        self.assertEquals(family[1]['id'], sib2.id)
        self.assertEquals(family[1]['relationship'], 'associate')
Exemple #8
0
    def test_places_by_start_date(self):
        site = LearningSiteFactory()
        place1 = site.place.first()

        place2 = PlaceFactory(start_date=None, end_date=None)
        site.place.add(place2)

        dt = ExtendedDate.objects.create(edtf_format='1920')
        place3 = PlaceFactory(start_date=dt)
        site.place.add(place3)

        qs = site.places_by_start_date()
        self.assertEquals(qs[0], place1)
        self.assertEquals(qs[1], place3)
        self.assertEquals(qs[2], place2)
Exemple #9
0
    def test_save(self):
        site = LearningSiteFactory(defunct=None)
        data = {
            'title': 'Foo',
            'established-is_range': False,
            'established-millenium1': '2',
            'established-century1': '0',
            'established-decade1': '0',
            'established-year1': '8',
            'established-month1': '',
            'established-day1': '',
            'established-approximate1': True,
            'established-uncertain1': True,
            'defunct-is_range': False,
            'defunct-millenium1': '2',
            'defunct-century1': '0',
            'defunct-decade1': '1',
            'defunct-year1': '1',
            'defunct-month1': '',
            'defunct-day1': '',
            'defunct-approximate1': False,
            'defunct-uncertain1': False,
        }
        form = LearningSiteForm(data, instance=site)
        self.assertTrue(form.is_valid())
        form.save()

        # make sure this was all saved
        self.assertEquals(site.established.edtf_format, '2008?~')
        self.assertEquals(site.defunct.edtf_format, '2011')
Exemple #10
0
 def test_get(self):
     site1 = LearningSiteFactory(title='Site Alpha')
     url = "/api/site/?q=Alpha"
     response = self.client.get(url)
     self.assertEquals(response.status_code, 200)
     the_json = loads(response.content.decode('utf-8'))
     self.assertEquals(len(the_json['results']), 1)
     self.assertEquals(the_json['results'][0]['id'], site1.id)
Exemple #11
0
    def setUp(self):
        self.site = LearningSiteFactory()
        self.collection = ArchivalCollectionFactory()
        self.collection.learning_sites.add(self.site)

        self.url = reverse('collection-delete-view',
                           kwargs={
                               'parent': self.site.id,
                               'pk': self.collection.id
                           })
Exemple #12
0
    def test_form_valid_associates(self):
        site = LearningSiteFactory()
        frm = ConnectionForm()
        frm.cleaned_data = {'connection_type': 'associate', 'site': site}
        view = ConnectionCreateView()
        view.parent = self.parent
        view.form_valid(frm)

        self.assertTrue(len(self.parent.associates()), 1)
        self.assertEquals(self.parent.associates()[0], site)
Exemple #13
0
 def setUp(self):
     self.site = LearningSiteFactory()
     self.collection = ArchivalCollectionFactory()
     self.link_url = reverse('collection-link-view',
                             kwargs={'parent': self.site.id})
     self.unlink_url = reverse('collection-unlink-view',
                               kwargs={
                                   'parent': self.site.id,
                                   'pk': self.collection.id
                               })
Exemple #14
0
 def setUp(self):
     self.site = LearningSiteFactory()
     self.footnote = FootnoteFactory()
     self.site.footnotes.add(self.footnote)
     self.create_url = reverse('footnote-create-view',
                               kwargs={'parent': self.site.id})
     self.edit_url = reverse('footnote-edit-view',
                             kwargs={
                                 'parent': self.site.id,
                                 'pk': self.footnote.id
                             })
     self.delete_url = reverse('footnote-delete-view',
                               kwargs={
                                   'parent': self.site.id,
                                   'pk': self.footnote.id
                               })
Exemple #15
0
class ConnectionDeleteViewTest(TestCase):
    def setUp(self):
        self.site = LearningSiteFactory()
        self.parent = LearningSiteFactory()

        editor = UserFactory()
        editor.groups.add(GroupFactory(name='Editor'))
        self.client.login(username=editor.username, password='******')

    def test_remove_associate(self):
        LearningSiteRelationshipFactory(site_one=self.parent,
                                        site_two=self.site)
        url = reverse('connection-delete-view',
                      kwargs={
                          'parent': self.parent.pk,
                          'type': 'associate',
                          'pk': self.site.pk
                      })
        response = self.client.post(url)
        self.assertEquals(response.status_code, 302)
        self.assertTrue(self.site not in self.parent.associates())
Exemple #16
0
    def test_get_year_range(self):
        site = LearningSiteFactory()
        self.assertEquals(site.get_year_range(), (1984, 1984))

        site = LearningSiteFactory(established=None, defunct=None)
        self.assertEquals(site.get_year_range(), (None, None))

        site = LearningSiteFactory()
        dt = ExtendedDate.objects.create(edtf_format='2018')
        site.defunct = dt
        site.save()
        self.assertEquals(site.get_year_range(), (1984, 2018))
Exemple #17
0
    def test_create_or_update(self):
        site = LearningSiteFactory(established=None)

        data = {
            'is_range': False,
            'millenium1': '2',
            'century1': '0',
            'decade1': '1',
            'year1': '0',
            'month1': '2',
            'day1': '28',
            'approximate1': True,
            'uncertain1': True,
            'millenium2': None,
            'century2': None,
            'decade2': None,
            'year2': None,
            'month2': None,
            'day2': None,
            'approximate2': False,
            'uncertain2': False,
        }

        # add established date
        form = ExtendedDateForm(data=data)
        self.assertTrue(form.is_valid())
        form.create_or_update(site, 'established')
        site.refresh_from_db()
        established = site.established
        self.assertEquals(established.edtf_format, '2010-02-28?~')

        # update established date
        data['year1'] = 1
        form = ExtendedDateForm(data=data)
        self.assertTrue(form.is_valid())
        form.create_or_update(site, 'established')
        site.refresh_from_db()
        self.assertEquals(established.id, site.established.id)
        self.assertEquals(established.edtf_format, '2011-02-28?~')

        # remove established date
        data = {
            'is_range': False,
            'millenium1': '',
            'century1': '',
            'decade1': '',
            'year1': '',
            'month1': '',
            'day1': '',
            'approximate1': True,
            'uncertain1': True,
            'millenium2': '',
            'century2': '',
            'decade2': '',
            'year2': '',
            'month2': '',
            'day2': '',
            'approximate2': False,
            'uncertain2': False,
        }
        form = ExtendedDateForm(data=data)
        self.assertTrue(form.is_valid())
        form.create_or_update(site, 'established')
        site.refresh_from_db()
        self.assertIsNone(site.established)

        with self.assertRaises(ExtendedDate.DoesNotExist):
            ExtendedDate.objects.get(id=established.id)
Exemple #18
0
 def setUp(self):
     self.site = LearningSiteFactory()
     self.parent = LearningSiteFactory()
Exemple #19
0
 def setUp(self):
     self.site = LearningSiteFactory()
     self.url = reverse('site-gallery-view',
                        kwargs={'parent': self.site.id})
Exemple #20
0
    def setUp(self):
        self.user = UserFactory()
        self.user.groups.add(GroupFactory(name='Editor'))

        self.site = LearningSiteFactory()
        self.repository = ArchivalRepositoryFactory()
Exemple #21
0
 def test_learning_site_detail(self):
     site = LearningSiteFactory()
     url = reverse('site-detail-view', kwargs={'pk': site.id})
     response = self.client.get(url)
     self.assertEquals(response.status_code, 200)
Exemple #22
0
 def setUp(self):
     self.site = LearningSiteFactory()
     self.url = reverse('display-date-view')
Exemple #23
0
    def test_empty(self):
        site = LearningSiteFactory()
        self.assertFalse(site.empty())

        site = LearningSite.objects.create(title='Foo')
        self.assertTrue(site.empty())
Exemple #24
0
    def setUp(self):
        self.site = LearningSiteFactory()
        self.repository = ArchivalRepositoryFactory()

        self.url = reverse('collection-create-view',
                           kwargs={'parent': self.site.id})
Exemple #25
0
    def test_group(self):
        site = LearningSite.objects.create(title='test site')
        self.assertEquals(site.group(), 'other')

        site = LearningSiteFactory()
        self.assertEquals(site.group(), 'school')
Exemple #26
0
 def setUp(self):
     self.user = UserFactory(username='******')
     self.site1 = LearningSiteFactory(title='foo', created_by=self.user)
     self.site2 = LearningSiteFactory(title='bar')
Exemple #27
0
class ApiViewTest(TestCase):
    def setUp(self):
        self.user = UserFactory()
        self.user.groups.add(GroupFactory(name='Editor'))

        self.site = LearningSiteFactory()
        self.repository = ArchivalRepositoryFactory()

    def test_anonymous(self):
        # views succeed
        response = self.client.get('/api/site/', {},
                                   HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEquals(response.status_code, 200)
        the_json = loads(response.content.decode('utf-8'))
        self.assertEquals(len(the_json['results']), 1)
        self.assertEquals(the_json['results'][0]['id'], self.site.id)

        response = self.client.get('/api/repository/', {},
                                   HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEquals(response.status_code, 200)

        the_json = loads(response.content.decode('utf-8'))
        self.assertEquals(the_json['results'][0]['id'], self.repository.id)

        # update fails
        response = self.client.post('/api/site/', {
            'id': self.site.id,
            'title': 'Foo'
        },
                                    HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEquals(response.status_code, 403)

    def test_create(self):
        self.client.login(username=self.user.username, password='******')
        data = {
            'title': 'Foo',
            'place': [{
                'title': 'Bar',
                'latlng': {
                    'lat': 5,
                    'lng': 6
                }
            }]
        }
        response = self.client.post('/api/site/',
                                    dumps(data),
                                    content_type="application/json",
                                    HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEquals(response.status_code, 201)

        site = LearningSite.objects.get(title='Foo')
        self.assertEquals(site.place.first().title, 'Bar')

    def test_update(self):
        self.client.login(username=self.user.username, password='******')
        data = {
            'id': self.site.id,
            'title': 'Foo',
            'place': [{
                'title': 'Bar',
                'latlng': {
                    'lat': 5,
                    'lng': 6
                }
            }],
            'established': '',
            'defunct': ''
        }
        response = self.client.put('/api/site/{}/'.format(self.site.id),
                                   dumps(data),
                                   content_type="application/json",
                                   HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEquals(response.status_code, 200)
        self.site.refresh_from_db()
        self.assertEquals(self.site.title, 'Foo')

    def test_family(self):
        parent = LearningSiteFactory()
        sib = LearningSiteFactory()
        sib2 = LearningSiteFactory()

        LearningSiteRelationshipFactory(site_one=parent, site_two=sib)
        LearningSiteRelationshipFactory(site_one=sib2, site_two=parent)

        family = LearningSiteFamilySerializer().get_family(parent)
        self.assertEquals(len(family), 2)
        self.assertEquals(family[0]['id'], sib.id)
        self.assertEquals(family[0]['relationship'], 'associate')
        self.assertEquals(family[1]['id'], sib2.id)
        self.assertEquals(family[1]['relationship'], 'associate')
Exemple #28
0
    def setUp(self):
        self.site = LearningSiteFactory()

        site = LearningSiteFactory()
        self.url = reverse('site-update-view', kwargs={'pk': site.id})
Exemple #29
0
 def test_empty_relationships(self):
     site = LearningSiteFactory()
     self.assertFalse(site.has_connections())
Exemple #30
0
 def setUp(self):
     self.site = LearningSiteFactory()
     self.url = reverse('digital-object-create-view',
                        kwargs={'parent': self.site.id})