Exemple #1
0
 def setUp(self):
     Director(name='Stephen', surname='Spilberg').save()
     Director(name='Peter', surname='Jackson').save()
     Actor(name='Leonardo', surname='diCaprio').save()
     Actor(name='Anna', surname='Dymna').save()
     OscarAward(year=1979, category=oscar_categories_tuple[0][0]).save()
     OscarAward(year=1999, category=oscar_categories_tuple[3][0]).save()
Exemple #2
0
 def test_delete_director(self):
     g = Director(name='steven', surname='spilberg')
     g.save()
     url = reverse('director-detail', kwargs={'pk': g.id})
     response = self.client.delete(url)
     self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
     self.assertEqual(Director.objects.count(), 0)
Exemple #3
0
 def test_saving_director_unique_error_throw(self):
     director = Director(name='jane', surname='doe')
     director.full_clean()
     director.save()
     director2 = Director(name='jane', surname='doe')
     with self.assertRaises(ValidationError):
         director2.full_clean()
Exemple #4
0
    def test_detail_view_with_a_exist_director(self):
        # should return a 200 OK
        g = Director(name='steven', surname='spilberg')
        g.save()

        url = reverse('director-detail', kwargs={'pk': g.id})
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data['id'], 1)
        self.assertEqual(response.data['name'], 'steven')
        self.assertEqual(response.data['surname'], 'spilberg')
Exemple #5
0
    def test_updating_surname_validation_throw(self):
        director = Director(name='steven', surname='spilberg')
        director.full_clean()
        director.save()

        director.surname = 'a' * 41
        with self.assertRaises(ValidationError):
            director.full_clean()
Exemple #6
0
    def test_updating_name_none_should_validation_error_throw(self):
        director = Director(name='steven', surname='spilberg')
        director.full_clean()
        director.save()

        director.name = None
        with self.assertRaises(ValidationError):
            director.full_clean()
Exemple #7
0
    def test_edit_surname_valid_director(self):
        g = Director(name='steven', surname='spilberg')
        g.save()
        url = reverse('director-detail', kwargs={'pk': g.id})
        data = {'surname': 'moricone'}
        response = self.client.patch(url, data, format='json')
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(Director.objects.count(), 1)
        self.assertEqual(Director.objects.get().surname, 'moricone')
        self.assertEqual(Director.objects.get().name, 'steven')

        self.assertEqual(response.data['id'], 1)
        self.assertEqual(response.data['name'], 'steven')
        self.assertEqual(response.data['surname'], 'moricone')
Exemple #8
0
    def test_directs_related_property_from_movie(self):
        Director(name='steven', surname='spilberg').save()
        Director(name='robert', surname='zucker').save()
        Actor(name='Leonardo', surname='diCaprio').save()
        Movie(title='Logan', director=Director.objects.get(pk=1)).save()
        Movie(title='Top Gun', director=Director.objects.get(pk=2)).save()

        url = reverse('director-detail', kwargs={'pk': 1})
        response = self.client.get(url, format='json')
        self.assertEqual(response.status_code, status.HTTP_200_OK)

        self.assertEqual(response.data['id'], 1)
        self.assertEqual(response.data['name'], 'steven')
        self.assertEqual(response.data['surname'], 'spilberg')
        self.assertEqual(len(response.data['directs']), 1)
Exemple #9
0
    def test_deleting_actor_shouldnt_remove_movie(self):
        director = Director(name='steven', surname='spilberg')
        director.save()
        movie = Movie(title='IT Crowd', director=Director.objects.get(pk=1))
        movie.save()

        actor = Actor(name='jane', surname='doe')
        actor.save()

        movie.actor.add(actor)
        movie.save()

        actor.delete()
        self.assertEqual(0, Actor.objects.count())
        self.assertEqual(1, Movie.objects.count())
    def test_directs_related_property_from_movie(self):
        Director(name='steven', surname='spilberg').save()

        a1 = Actor(name='Leonardo', surname='diCaprio')
        a1.save()
        a2 = Actor(name='Bill', surname='Murray')
        a2.save()

        m1 = Movie(title='Logan', director=Director.objects.get(pk=1))
        m1.save()
        m1.actor.add(a1)
        m1.save()

        m2 = Movie(title='Top Gun', director=Director.objects.get(pk=1))
        m2.save()
        m1.actor.add(a2)
        m1.save()

        url = reverse('actor-detail', kwargs={'pk': 2})
        response = self.client.get(url, format='json')
        self.assertEqual(response.status_code, status.HTTP_200_OK)

        self.assertEqual(response.data['id'], 2)
        self.assertEqual(response.data['name'], 'Bill')
        self.assertEqual(response.data['surname'], 'Murray')
        self.assertEqual(len(response.data['plays']), 1)
Exemple #11
0
 def test_saving_director_no_error_throw(self):
     director = Director(name='steven', surname='spilberg')
     director.full_clean()
     director.save()
     self.assertEqual(1, director.id)
     self.assertEqual('steven', director.name)
     self.assertEqual('spilberg', director.surname)
     self.assertIsNotNone(director.created)
Exemple #12
0
    def test_deleting_existing_director_should_remove_movie(self):
        director = Director(name='steven', surname='spilberg')
        director.save()
        movie = Movie(title='IT Crowd', director=Director.objects.get(pk=1))
        movie.save()

        director.delete()
        self.assertEqual(0, Director.objects.count())
        self.assertEqual(0, Movie.objects.count())
    def test_delete_actor_not_deletes_movies(self):
        Director(name='steven', surname='spilberg').save()
        m = Movie(title='Logan', director=Director.objects.get(pk=1))
        m.save()

        a = Actor(name='Bill', surname='Murray')
        a.save()
        m.actor.add(a)
        m.save()

        url = reverse('actor-detail', kwargs={'pk': a.id})
        response = self.client.delete(url)
        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
        self.assertEqual(Actor.objects.count(), 0)
        self.assertEqual(Movie.objects.count(), 1)
Exemple #14
0
    def test_deleting_existing_director_should_pass(self):
        director = Director(name='steven', surname='spilberg')
        director.save()

        director.delete()
        self.assertEqual(0, Director.objects.count())
Exemple #15
0
    def test_deleting_none_existing_director_should_error_throw(self):
        director = Director(name='steven', surname='spilberg')

        with self.assertRaises(AssertionError):
            director.delete()
Exemple #16
0
 def test_empty_name_should_throw_error(self):
     director = Director()
     with self.assertRaises(ValidationError):
         director.full_clean()
Exemple #17
0
    def test_updating_surname_no_error_throw(self):
        director = Director(name='ennio', surname='spilberg')
        director.full_clean()
        director.save()

        director.surname = 'McDoe'
        director.save()
        director.full_clean()
        director.refresh_from_db()

        self.assertEqual(Director.objects.count(), 1)
        self.assertEqual(1, director.id)
        self.assertEqual('ennio', director.name)
        self.assertEqual('McDoe', director.surname)
Exemple #18
0
 def test_too_long_name_should_throw_error(self):
     director = Director(name='a' * 21, surname='spilberg')
     with self.assertRaises(ValidationError):
         director.full_clean()
Exemple #19
0
 def test_too_long_surname_should_throw_error(self):
     director = Director(name='steven', surname='a' * 41)
     with self.assertRaises(ValidationError):
         director.full_clean()
Exemple #20
0
 def test_list_view_for_directors(self):
     # should return 200 OK
     g = Director(name='steven', surname='spilberg')
     g.save()
     response = self.client.get('/directors/')
     self.assertEqual(response.status_code, status.HTTP_200_OK)
Exemple #21
0
    def test_updating_name_no_error_throw(self):
        director = Director(name='ennio', surname='spilberg')
        director.full_clean()
        director.save()
        created_date_src = director.created

        director.name = 'steven'
        director.save()
        director.full_clean()
        director.refresh_from_db()
        created_date_dest = director.created

        self.assertEqual(Director.objects.count(), 1)
        self.assertEqual(1, director.id)
        self.assertEqual('steven', director.name)
        self.assertEqual('spilberg', director.surname)
        self.assertEqual(created_date_dest, created_date_src)