Пример #1
0
def add_sessions_ratings_and_speakers():
    first_tag = Tag(description='javascript')
    last_tag = Tag(description='ember-js')
    first_tag.save()
    last_tag.save()
    first_session = Session(name='first', room='A', desc='javascript')
    last_session = Session(name='last', room='Z', desc='python')
    first_session.save()
    last_session.save()
    first_session.tags.add(first_tag)
    last_session.tags.add(last_tag)
    first_session.save()
    last_session.save()
    first_rating = Rating(score=9, feedback='legit', session=first_session)
    last_rating = Rating(score=2, feedback='broken', session=first_session)
    first_rating.save()
    last_rating.save()
    first_speaker = Speaker(name='foo', session=first_session)
    last_speaker = Speaker(name='bar', session=last_session)
    first_speaker.save()
    last_speaker.save()
    return first_session, last_session, first_rating, last_rating, first_speaker, last_speaker, first_tag, last_tag
Пример #2
0
def add_sessions_ratings_and_speakers():
    first_tag = Tag(description='javascript')
    last_tag = Tag(description='ember-js')
    first_tag.save()
    last_tag.save()
    first_session = Session(name='first', room='A', desc='javascript')
    last_session = Session(name='last', room='Z', desc='python')
    first_session.save()
    last_session.save()
    first_session.tags.add(first_tag)
    last_session.tags.add(last_tag)
    first_session.save()
    last_session.save()
    first_rating = Rating(score=9, feedback='legit', session=first_session)
    last_rating = Rating(score=2, feedback='broken', session=first_session)
    first_rating.save()
    last_rating.save()
    first_speaker = Speaker(name='foo', session=first_session)
    last_speaker = Speaker(name='bar', session=last_session)
    first_speaker.save()
    last_speaker.save()
    return first_session, last_session, first_rating, last_rating, first_speaker, last_speaker, first_tag, last_tag
Пример #3
0
 def setUp(self):
     self.first_rating = Rating(score=9, feedback='legit')
     self.last_rating = Rating(score=2, feedback='broken')
     self.first_rating.save()
     self.last_rating.save()
Пример #4
0
class RatingTests(TestCase):

    def setUp(self):
        self.first_rating = Rating(score=9, feedback='legit')
        self.last_rating = Rating(score=2, feedback='broken')
        self.first_rating.save()
        self.last_rating.save()

    def test_will_return_json_with_list_of_ratings(self):
        response = self.client.get('/codecamp/ratings/')
        ratings = json.loads(response.content)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(ratings), 2)

    def test_ratings_json_has_an_attribute_for_each_item(self):
        response = self.client.get('/codecamp/ratings/')
        ratings = json.loads(response.content)
        self.assertEqual(ratings[0]['score'], 9)
        self.assertEqual(ratings[0]['feedback'], 'legit')
        self.assertEqual(ratings[1]['score'], 2)
        self.assertEqual(ratings[1]['feedback'], 'broken')

    def test_detail_ratings_endpoint_returns_attributes_for_given_rating_id(self):
        response = self.client.get('/codecamp/ratings/{}/'.format(self.last_rating.pk))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.content, '{"id": 2, "score": 2, "feedback": "broken"}')

    def test_http_post_will_create_rating_and_return_201(self):
        data = {'score': 9, 'feedback': 'nice try'}
        response = self.client.post('/codecamp/ratings/', data)
        self.assertEqual(response.status_code, 201)

    def test_http_post_will_create_rating_and_return_created_rating_json(self):
        data = {'score': 9, 'feedback': 'nice try'}
        response = self.client.post('/codecamp/ratings/', data)
        created_rating = json.loads(response.content)
        self.assertEqual(created_rating['score'], 9)
        self.assertEqual(created_rating['feedback'], 'nice try')

    def test_http_post_without_data_returns_400(self):
        response = self.client.post('/codecamp/ratings/', {})
        self.assertEqual(response.status_code, 400)

    def test_http_put_will_update_first_rating_and_return_200(self):
        data = {'score': 124, 'feedback': 'updated feedback'}
        response = self.client.put('/codecamp/ratings/{}/'.format(self.first_rating.pk), data)
        self.assertEqual(response.status_code, 200)

    def test_http_put_will_update_first_rating_and_return_updated_rating_json(self):
        data = {'score': 124, 'feedback': 'updated feedback'}
        response = self.client.put('/codecamp/ratings/{}/'.format(self.first_rating.pk), data)
        updated_rating = json.loads(response.content)
        self.assertEqual(updated_rating['score'], 124)
        self.assertEqual(updated_rating['feedback'], 'updated feedback')

    def test_http_delete_will_remove_first_rating_and_return_204(self):
        response = self.client.delete('/codecamp/ratings/{}/'.format(self.first_rating.pk))
        self.assertEqual(response.status_code, 204)

    def test_http_delete_will_remove_first_rating_and_return_empty_content(self):
        response = self.client.delete('/codecamp/ratings/{}/'.format(self.first_rating.pk))
        self.assertEqual(response.content, '')

    def test_http_delete_will_return_404_when_incorrect_id_used_to_delete_rating(self):
        response = self.client.delete('/codecamp/ratings/999999999999999999/')
        self.assertEqual(response.status_code, 404)