[scrobbles] Fix aggregator tests
This commit is contained in:
@ -4,9 +4,32 @@ import pytest
|
|||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from rest_framework.authtoken.models import Token
|
from rest_framework.authtoken.models import Token
|
||||||
|
|
||||||
|
from scrobbles.models import Scrobble
|
||||||
|
from boardgames.models import BoardGame
|
||||||
|
|
||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def boardgame():
|
||||||
|
user = User.objects.create(email="test@exmaple.com")
|
||||||
|
return Token.objects.create(user=user).key
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def boardgame_scrobble():
|
||||||
|
return Scrobble.objects.create(
|
||||||
|
board_game=BoardGame.objects.create(title="Test Board Game"),
|
||||||
|
media_type="BoardGame",
|
||||||
|
played_to_completion=True,
|
||||||
|
log={
|
||||||
|
"players": [
|
||||||
|
{"user_id": 1, "win": True, "score": 30, "color": "Blue"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class MopidyRequest:
|
class MopidyRequest:
|
||||||
name = "Same in the End"
|
name = "Same in the End"
|
||||||
artist = "Sublime"
|
artist = "Sublime"
|
||||||
@ -63,6 +86,7 @@ def valid_auth_token():
|
|||||||
user = User.objects.create(email="test@exmaple.com")
|
user = User.objects.create(email="test@exmaple.com")
|
||||||
return Token.objects.create(user=user).key
|
return Token.objects.create(user=user).key
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def mopidy_track():
|
def mopidy_track():
|
||||||
return MopidyRequest()
|
return MopidyRequest()
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from unittest import mock
|
|
||||||
from unittest.mock import patch
|
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
import time_machine
|
import time_machine
|
||||||
@ -13,13 +11,13 @@ from profiles.models import UserProfile
|
|||||||
from scrobbles.models import Scrobble
|
from scrobbles.models import Scrobble
|
||||||
|
|
||||||
|
|
||||||
def build_scrobbles(client, request_data, num=7, spacing=2):
|
def build_scrobbles(client, request_json, num=7, spacing=2):
|
||||||
url = reverse("scrobbles:mopidy-webhook")
|
url = reverse("scrobbles:mopidy-webhook")
|
||||||
user = get_user_model().objects.create(username="Test User")
|
user = get_user_model().objects.create(username="Test User")
|
||||||
user.profile.timezone = "US/Eastern"
|
user.profile.timezone = "US/Eastern"
|
||||||
user.profile.save()
|
user.profile.save()
|
||||||
for i in range(num):
|
for i in range(num):
|
||||||
client.post(url, request_data, content_type="application/json")
|
client.post(url, request_json, content_type="application/json")
|
||||||
s = Scrobble.objects.last()
|
s = Scrobble.objects.last()
|
||||||
s.user = user
|
s.user = user
|
||||||
s.timestamp = timezone.now() - timedelta(days=i * spacing)
|
s.timestamp = timezone.now() - timedelta(days=i * spacing)
|
||||||
@ -29,8 +27,8 @@ def build_scrobbles(client, request_data, num=7, spacing=2):
|
|||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
@time_machine.travel(datetime(2022, 3, 4, 1, 24))
|
@time_machine.travel(datetime(2022, 3, 4, 1, 24))
|
||||||
def test_scrobble_counts_data(client, mopidy_track_request_data):
|
def test_scrobble_counts_data(client, mopidy_track):
|
||||||
build_scrobbles(client, mopidy_track_request_data)
|
build_scrobbles(client, mopidy_track.request_json)
|
||||||
user = get_user_model().objects.first()
|
user = get_user_model().objects.first()
|
||||||
count_dict = scrobble_counts(user)
|
count_dict = scrobble_counts(user)
|
||||||
assert count_dict == {
|
assert count_dict == {
|
||||||
@ -44,8 +42,8 @@ def test_scrobble_counts_data(client, mopidy_track_request_data):
|
|||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
@time_machine.travel(datetime(2022, 3, 4, 1, 24))
|
@time_machine.travel(datetime(2022, 3, 4, 1, 24))
|
||||||
def test_live_charts(client, mopidy_track_request_data):
|
def test_live_charts(client, mopidy_track):
|
||||||
build_scrobbles(client, mopidy_track_request_data, 7, 1)
|
build_scrobbles(client, mopidy_track.request_json, 7, 1)
|
||||||
user = get_user_model().objects.first()
|
user = get_user_model().objects.first()
|
||||||
|
|
||||||
week = week_of_scrobbles(user)
|
week = week_of_scrobbles(user)
|
||||||
|
|||||||
15
tests/scrobbles_tests/test_metadata.py
Normal file
15
tests/scrobbles_tests/test_metadata.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
from scrobbles.dataclasses import BoardGameLogData, BoardGameScoreLogData
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_boardgame_log_data(boardgame_scrobble):
|
||||||
|
assert not boardgame_scrobble.geo_location
|
||||||
|
assert boardgame_scrobble.logdata == BoardGameLogData(
|
||||||
|
players=[
|
||||||
|
BoardGameScoreLogData(
|
||||||
|
user_id=1, name=None, color="Blue", score=30, win=True
|
||||||
|
)
|
||||||
|
]
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user