update import and export media tests

This commit is contained in:
FuzzyGrim
2024-02-10 16:51:12 +01:00
parent cd744557bf
commit d4b9ba050c
4 changed files with 52 additions and 51 deletions

View File

@@ -38,6 +38,8 @@ jobs:
YAMTRACK_MAL_API: ${{ secrets.YAMTRACK_MAL_API }}
run: |
coverage run --source='src/app' --parallel-mode src/manage.py test app
coverage run --source='src/users' --parallel-mode src/manage.py test users
coverage run --source='src/integrations' --parallel-mode src/manage.py test integrations
- name: Build Coverage Report
run: |

View File

@@ -1,31 +1,30 @@
"media_id","media_type","title","image","score","progress","status","start_date","end_date","notes","season_number","episode_number","watch_date"
"1668","tv","Friends","tv-f496cm9enuEsZkSPzCwnTESEK5s.jpg","8.0","","","","","","","",""
"10494","movie","Perfect Blue","movie-kG4AZLcWilPYIixowm8pnE3DqfI.jpg","9.0","1","Completed","","2023-07-13","","","",""
"1668","season","Friends","season-odCW88Cq5hAF0ZFVOkeJmeQv1nV.jpg","7.0","24","Completed","2023-07-14","2023-07-14","nice","1","",""
"1396","season","Breaking Bad","season-1BP4xYv9ZG4ZVHkL7ocOziBbSYH.jpg","","0","Planning","","","","1","",""
"1668","episode","Friends","","","","","","","","1","1","2023-07-14"
"1668","episode","Friends","","","","","","","","1","2","2023-07-14"
"1668","episode","Friends","","","","","","","","1","3","2023-07-14"
"1668","episode","Friends","","","","","","","","1","4","2023-07-14"
"1668","episode","Friends","","","","","","","","1","5","2023-07-14"
"1668","episode","Friends","","","","","","","","1","6","2023-07-14"
"1668","episode","Friends","","","","","","","","1","7","2023-07-14"
"1668","episode","Friends","","","","","","","","1","8","2023-07-14"
"1668","episode","Friends","","","","","","","","1","9","2023-07-14"
"1668","episode","Friends","","","","","","","","1","10","2023-07-14"
"1668","episode","Friends","","","","","","","","1","11","2023-07-14"
"1668","episode","Friends","","","","","","","","1","12","2023-07-14"
"1668","episode","Friends","","","","","","","","1","13","2023-07-14"
"1668","episode","Friends","","","","","","","","1","14","2023-07-14"
"1668","episode","Friends","","","","","","","","1","15","2023-07-14"
"1668","episode","Friends","","","","","","","","1","16","2023-07-14"
"1668","episode","Friends","","","","","","","","1","17","2023-07-14"
"1668","episode","Friends","","","","","","","","1","18","2023-07-14"
"1668","episode","Friends","","","","","","","","1","19","2023-07-14"
"1668","episode","Friends","","","","","","","","1","20","2023-07-14"
"1668","episode","Friends","","","","","","","","1","21","2023-07-14"
"1668","episode","Friends","","","","","","","","1","22","2023-07-14"
"1668","episode","Friends","","","","","","","","1","23","2023-07-14"
"1668","episode","Friends","","","","","","","","1","24","2023-07-14"
"227","anime","FLCL","anime-77356l.jpg","","2","In progress","2023-07-14","","","","",""
"2","manga","Berserk","manga-157897l.jpg","","0","Planning","","","","","",""
"1668","tv","Friends","https://image.tmdb.org/t/p/w500/2koX1xLkpTQM4IZebYvKysFW1Nh.jpg","","24","In progress","2024-02-09","2024-02-09","","","",""
"10494","movie","Perfect Blue","https://image.tmdb.org/t/p/w500/6WTiOCfDPP8XV4jqfloiVWf7KHq.jpg","9.0","1","Completed","","2024-02-09","","","",""
"1668","season","Friends","https://image.tmdb.org/t/p/w500/odCW88Cq5hAF0ZFVOkeJmeQv1nV.jpg","8.0","24","Completed","2024-02-09","2024-02-09","","1","",""
"1668","episode","Friends","","","","","","","","1","24","2024-02-09"
"1668","episode","Friends","","","","","","","","1","23","2024-02-09"
"1668","episode","Friends","","","","","","","","1","22","2024-02-09"
"1668","episode","Friends","","","","","","","","1","21","2024-02-09"
"1668","episode","Friends","","","","","","","","1","20","2024-02-09"
"1668","episode","Friends","","","","","","","","1","19","2024-02-09"
"1668","episode","Friends","","","","","","","","1","18","2024-02-09"
"1668","episode","Friends","","","","","","","","1","17","2024-02-09"
"1668","episode","Friends","","","","","","","","1","16","2024-02-09"
"1668","episode","Friends","","","","","","","","1","15","2024-02-09"
"1668","episode","Friends","","","","","","","","1","14","2024-02-09"
"1668","episode","Friends","","","","","","","","1","13","2024-02-09"
"1668","episode","Friends","","","","","","","","1","12","2024-02-09"
"1668","episode","Friends","","","","","","","","1","11","2024-02-09"
"1668","episode","Friends","","","","","","","","1","10","2024-02-09"
"1668","episode","Friends","","","","","","","","1","9","2024-02-09"
"1668","episode","Friends","","","","","","","","1","8","2024-02-09"
"1668","episode","Friends","","","","","","","","1","7","2024-02-09"
"1668","episode","Friends","","","","","","","","1","6","2024-02-09"
"1668","episode","Friends","","","","","","","","1","5","2024-02-09"
"1668","episode","Friends","","","","","","","","1","4","2024-02-09"
"1668","episode","Friends","","","","","","","","1","3","2024-02-09"
"1668","episode","Friends","","","","","","","","1","2","2024-02-09"
"1668","episode","Friends","","","","","","","","1","1","2024-02-09"
"227","anime","FLCL","https://cdn.myanimelist.net/images/anime/7/77356l.jpg","","2","In progress","2024-02-09","","","","",""
"2","manga","Berserk","https://cdn.myanimelist.net/images/manga/1/157897l.jpg","","0","Completed","","2024-02-09","","","",""
1 media_id media_type title image score progress status start_date end_date notes season_number episode_number watch_date
2 1668 tv Friends tv-f496cm9enuEsZkSPzCwnTESEK5s.jpg https://image.tmdb.org/t/p/w500/2koX1xLkpTQM4IZebYvKysFW1Nh.jpg 8.0 24 In progress 2024-02-09 2024-02-09
3 10494 movie Perfect Blue movie-kG4AZLcWilPYIixowm8pnE3DqfI.jpg https://image.tmdb.org/t/p/w500/6WTiOCfDPP8XV4jqfloiVWf7KHq.jpg 9.0 1 Completed 2023-07-13 2024-02-09
4 1668 season Friends season-odCW88Cq5hAF0ZFVOkeJmeQv1nV.jpg https://image.tmdb.org/t/p/w500/odCW88Cq5hAF0ZFVOkeJmeQv1nV.jpg 7.0 8.0 24 Completed 2023-07-14 2024-02-09 2023-07-14 2024-02-09 nice 1
5 1396 1668 season episode Breaking Bad Friends season-1BP4xYv9ZG4ZVHkL7ocOziBbSYH.jpg 0 Planning 1 24 2024-02-09
6 1668 episode Friends 1 1 23 2023-07-14 2024-02-09
7 1668 episode Friends 1 2 22 2023-07-14 2024-02-09
8 1668 episode Friends 1 3 21 2023-07-14 2024-02-09
9 1668 episode Friends 1 4 20 2023-07-14 2024-02-09
10 1668 episode Friends 1 5 19 2023-07-14 2024-02-09
11 1668 episode Friends 1 6 18 2023-07-14 2024-02-09
12 1668 episode Friends 1 7 17 2023-07-14 2024-02-09
13 1668 episode Friends 1 8 16 2023-07-14 2024-02-09
14 1668 episode Friends 1 9 15 2023-07-14 2024-02-09
15 1668 episode Friends 1 10 14 2023-07-14 2024-02-09
16 1668 episode Friends 1 11 13 2023-07-14 2024-02-09
17 1668 episode Friends 1 12 2023-07-14 2024-02-09
18 1668 episode Friends 1 13 11 2023-07-14 2024-02-09
19 1668 episode Friends 1 14 10 2023-07-14 2024-02-09
20 1668 episode Friends 1 15 9 2023-07-14 2024-02-09
21 1668 episode Friends 1 16 8 2023-07-14 2024-02-09
22 1668 episode Friends 1 17 7 2023-07-14 2024-02-09
23 1668 episode Friends 1 18 6 2023-07-14 2024-02-09
24 1668 episode Friends 1 19 5 2023-07-14 2024-02-09
25 1668 episode Friends 1 20 4 2023-07-14 2024-02-09
26 1668 episode Friends 1 21 3 2023-07-14 2024-02-09
27 1668 episode Friends 1 22 2 2023-07-14 2024-02-09
28 1668 episode Friends 1 23 1 2023-07-14 2024-02-09
29 1668 227 episode anime Friends FLCL https://cdn.myanimelist.net/images/anime/7/77356l.jpg 2 In progress 2024-02-09 1 24 2023-07-14
30 227 2 anime manga FLCL Berserk anime-77356l.jpg https://cdn.myanimelist.net/images/manga/1/157897l.jpg 2 0 In progress Completed 2023-07-14 2024-02-09
2 manga Berserk manga-157897l.jpg 0 Planning

View File

@@ -19,10 +19,11 @@ class ExportCSVTest(TestCase):
self.client.login(**self.credentials)
# Create test data for each model
TV.objects.create(
tv = TV.objects.create(
media_id=1668,
title="Friends",
score=9,
status="In progress",
user=self.user,
notes="Nice",
)
@@ -42,10 +43,11 @@ class ExportCSVTest(TestCase):
media_id=1668,
title="Friends",
score=9,
status="Completed",
status="In progress",
season_number=1,
user=self.user,
notes="Nice",
related_tv=tv,
)
Episode.objects.create(

View File

@@ -1,7 +1,8 @@
import json
import os
from pathlib import Path
from unittest.mock import MagicMock, patch
import requests
from app.models import TV, Anime, Episode, Manga, Movie, Season
from django.conf import settings
from django.test import TestCase
@@ -9,7 +10,7 @@ from users.models import User
from integrations.utils import imports
mock_path = os.path.join(os.path.dirname(__file__), "mock_data")
mock_path = Path(__file__).resolve().parent / "mock_data"
class ImportMAL(TestCase):
@@ -21,12 +22,12 @@ class ImportMAL(TestCase):
self.user = User.objects.create_user(**self.credentials)
@patch("requests.get")
def test_import_animelist(self: "ImportMAL", mock_request) -> None:
def test_import_animelist(self: "ImportMAL", mock_request: "patch") -> None:
"""Basic test importing anime and manga from MyAnimeList."""
with open(mock_path + "/import_mal_anime.json") as file:
with open(mock_path / "import_mal_anime.json") as file:
anime_response = json.load(file)
with open(mock_path + "/import_mal_manga.json") as file:
with open(mock_path / "import_mal_manga.json") as file:
manga_response = json.load(file)
anime_mock = MagicMock()
@@ -48,15 +49,14 @@ class ImportMAL(TestCase):
True,
)
self.assertEqual(
Manga.objects.get(user=self.user, title="Fire Punch").score
== 7,
Manga.objects.get(user=self.user, title="Fire Punch").score == 7,
True,
)
def test_user_not_found(self: "ImportMAL") -> None:
"""Test that an error is raised if the user is not found."""
self.assertRaises(ValueError, imports.mal_data, "fhdsufdsu", self.user)
self.assertRaises(requests.exceptions.HTTPError, imports.mal_data, "fhdsufdsu", self.user)
class ImportTMDB(TestCase):
@@ -71,7 +71,7 @@ class ImportTMDB(TestCase):
def test_tmdb_import_ratings(self: "ImportTMDB") -> None:
"""Test importing ratings from TMDB."""
with open(mock_path + "/import_tmdb_ratings.csv", "rb") as file:
with open(mock_path / "import_tmdb_ratings.csv", "rb") as file:
imports.tmdb_data(file, self.user, "Completed")
self.assertEqual(Movie.objects.filter(user=self.user).count(), 2)
self.assertEqual(TV.objects.filter(user=self.user).count(), 1)
@@ -79,11 +79,10 @@ class ImportTMDB(TestCase):
def test_tmdb_import_watchlist(self: "ImportTMDB") -> None:
"""Test importing watchlist from TMDB."""
with open(mock_path + "/import_tmdb_watchlist.csv", "rb") as file:
with open(mock_path / "import_tmdb_watchlist.csv", "rb") as file:
imports.tmdb_data(file, self.user, "Planning")
self.assertEqual(TV.objects.filter(user=self.user).count(), 0)
self.assertEqual(Season.objects.filter(user=self.user).count(), 2)
self.assertEqual(TV.objects.filter(user=self.user).count(), 2)
class ImportAniList(TestCase):
@@ -96,10 +95,10 @@ class ImportAniList(TestCase):
self.user = User.objects.create_user(**self.credentials)
@patch("requests.post")
def test_import_anilist(self: "ImportAniList", mock_request) -> None:
def test_import_anilist(self: "ImportAniList", mock_request: "patch") -> None:
"""Basic test importing anime and manga from AniList."""
with open(mock_path + "/import_anilist.json") as file:
with open(mock_path / "import_anilist.json") as file:
anilist_response = json.load(file)
mock_request.return_value.json.return_value = anilist_response
@@ -111,15 +110,14 @@ class ImportAniList(TestCase):
True,
)
self.assertEqual(
Manga.objects.get(user=self.user, title="One Punch-Man").score
== 9,
Manga.objects.get(user=self.user, title="One Punch-Man").score == 9,
True,
)
def test_user_not_found(self: "ImportAniList") -> None:
"""Test that an error is raised if the user is not found."""
self.assertRaises(ValueError, imports.anilist_data, "fhdsufdsu", self.user)
self.assertRaises(requests.exceptions.HTTPError, imports.anilist_data, "fhdsufdsu", self.user)
class ImportYamtrack(TestCase):
@@ -134,14 +132,14 @@ class ImportYamtrack(TestCase):
def test_import_yamtrack(self: "ImportYamtrack") -> None:
"""Basic test importing media from Yamtrack."""
with open(mock_path + "/import_yamtrack.csv", "rb") as file:
with open(mock_path / "import_yamtrack.csv", "rb") as file:
imports.yamtrack_data(file, self.user)
self.assertEqual(Anime.objects.filter(user=self.user).count(), 1)
self.assertEqual(Manga.objects.filter(user=self.user).count(), 1)
self.assertEqual(TV.objects.filter(user=self.user).count(), 1)
self.assertEqual(Movie.objects.filter(user=self.user).count(), 1)
self.assertEqual(Season.objects.filter(user=self.user).count(), 2)
self.assertEqual(Season.objects.filter(user=self.user).count(), 1)
self.assertEqual(
Episode.objects.filter(related_season__user=self.user).count(),
24,