def test_rating_recipe_calculate_account_stars(self, api_client): first_recipe = RecipeFactory() recipe_author = first_recipe.author api_client.force_authenticate(recipe_author) second_recipe = RecipeFactory.build() data = { 'title': {second_recipe.title}, 'description': {second_recipe.description}, 'flavor_type': {second_recipe.flavor_type}, } api_client.post(create_recipe_url, data) second_recipe = Recipe.objects.all().get(title=second_recipe.title) data = { 'recipe': first_recipe.id, 'stars': 5 } api_client.post(rating_rate_url, data) data = { 'recipe': second_recipe.id, 'stars': 0 } api_client.post(rating_rate_url, data) api_client.logout() second_user = UserFactory() api_client.force_authenticate(second_user) data = { 'recipe': first_recipe.id, 'stars': 5 } api_client.post(rating_rate_url, data) data = { 'recipe': second_recipe.id, 'stars': 5 } api_client.post(rating_rate_url, data) api_client.logout() first_recipe = Recipe.objects.all().get(title=first_recipe.title) second_recipe = Recipe.objects.all().get(title=second_recipe.title) user = UserAccount.objects.all().get(id=recipe_author.id) assert first_recipe.stars == '5.0' assert second_recipe.stars == '2.5' assert Rating.get_account_stars_score(user=user) == 3.75 assert user.stars == '3.75'
def test_get_account_stars_score(api_client): user = UserFactory() api_client.force_authenticate(user) first_recipe = RecipeFactory.build() create_recipe_url = reverse('recipes:create') data = { 'title': {first_recipe.title}, 'description': {first_recipe.description}, 'flavor_type': {first_recipe.flavor_type}, } api_client.post(create_recipe_url, data) second_recipe = RecipeFactory.build() data = { 'title': {second_recipe.title}, 'description': {second_recipe.description}, 'flavor_type': {second_recipe.flavor_type}, } api_client.post(create_recipe_url, data) first_recipe = Recipe.objects.all().get(title__exact=first_recipe.title) data = {'recipe': first_recipe.id, 'stars': 5} api_client.post(rating_create_url, data) second_recipe = Recipe.objects.all().get(title__exact=second_recipe.title) data = {'recipe': second_recipe.id, 'stars': 0} api_client.post(rating_create_url, data) second_user = UserFactory() api_client.force_authenticate(second_user) data = {'recipe': first_recipe.id, 'stars': 1} api_client.post(rating_create_url, data) data = {'recipe': second_recipe.id, 'stars': 3} api_client.post(rating_create_url, data) account_avg_stars = Rating.get_account_stars_score(user=user) assert account_avg_stars == 2.25