mirror of
https://github.com/FuzzyGrim/Yamtrack.git
synced 2026-03-03 00:47:03 +00:00
update import and export media tests
This commit is contained in:
2
.github/workflows/app-tests.yml
vendored
2
.github/workflows/app-tests.yml
vendored
@@ -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: |
|
||||
|
||||
@@ -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","","","",""
|
||||
|
||||
|
@@ -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(
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user