示例#1
0
 def mock_get_user_by_id(self, mocker):
     user = User({'id': "bebebebebebebebebebebebe", 'email': '*****@*****.**'})
     return mocker.patch("Repository.get_user_by_id", return_value=user)
示例#2
0
 def mock_get_user_by_email(self, mocker):
     user = User({'id': "123456789012345678901234"})
     return mocker.patch("Repository.get_user_by_email", return_value=user)
示例#3
0
class TestUpdateRating:

    users = {
        '1': User({'name': 'Alice', 'rating_history': []}),
        '2': User({'name': 'Bob', 'rating_history': [1, 2, 3]}),
        '3': User({'name': 'Charlie', 'rating_history': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]})
    }
    url = '/user/rating'

    @pytest.fixture
    def mock_get_user_by_id(self, mocker):
        return mocker.patch("Repository.get_user_by_id", side_effect=lambda x: self.users.get(x, None))

    def test_update_rating_empty(self, client, mock_get_user_by_id, mock_update_ratings):
        data = {
            'userId': '1',
            'rating': 7
        }
        response = client.post(self.url, json=data)

        mock_get_user_by_id.assert_called()
        mock_update_ratings.assert_called_once_with('1', [7])
        assert response.status_code == 200

    def test_update_rating_unfilled(self, client, mock_get_user_by_id, mock_update_ratings):
        data = {
            'userId': '2',
            'rating': 50
        }
        response = client.post(self.url, json=data)

        mock_get_user_by_id.assert_called()
        mock_update_ratings.assert_called_once_with('2', [1, 2, 3, 50])
        assert response.status_code == 200

    def test_update_rating_full(self, client, mock_get_user_by_id, mock_update_ratings):
        data = {
            'userId': '3',
            'rating': 50
        }
        response = client.post(self.url, json=data)

        mock_get_user_by_id.assert_called()
        mock_update_ratings.assert_called_once_with('3', [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 50])
        assert response.status_code == 200

    def test_update_rating_no_id(self, client, mock_get_user_by_id, mock_update_ratings):
        data = {
            'rating': 50
        }
        response = client.post(self.url, json=data)

        mock_get_user_by_id.assert_not_called()
        mock_update_ratings.assert_not_called()
        assert response.status_code == 400
        assert b'"errorMessage": "No user given"' in response.data

    def test_update_rating_no_rating(self, client, mock_get_user_by_id, mock_update_ratings):
        data = {
            'userId': 7
        }
        response = client.post(self.url, json=data)

        mock_get_user_by_id.assert_not_called()
        mock_update_ratings.assert_not_called()
        assert response.status_code == 400
        assert b'"errorMessage": "No rating provided"' in response.data

    def test_update_rating_user_not_found(self, client, mock_get_user_by_id, mock_update_ratings):
        data = {
            'userId': 7,
            'rating': 12
        }
        response = client.post(self.url, json=data)

        mock_get_user_by_id.assert_called()
        mock_update_ratings.assert_not_called()
        assert response.status_code == 400
        assert b'"errorMessage": "No user found with that id"' in response.data
示例#4
0
 def mock_get_user_by_id(self, mocker):
     user = User({'id': "567567567567567567567567"})
     return mocker.patch("Repository.get_user_by_id", return_value=user)
示例#5
0
 def mock_get_user_by_id(self, mocker):
     user = User({'profilePic': "pic goes here"})
     return mocker.patch("Repository.get_user_by_id", return_value=user)
示例#6
0
 def mock_get_user_by_email(self, mocker):
     user = User({'id': "123412341234123412341234", 'email': '*****@*****.**'})
     return mocker.patch("Repository.get_user_by_email", side_effect=[None, user])
示例#7
0
 def mock_get_user_by_id(self, mocker):
     user = User({'name': "Steve"})
     return mocker.patch("Repository.get_user_by_id",
                         side_effect=[user, user])