Skip to content

Commit

Permalink
Merge bca9d56 into e08b814
Browse files Browse the repository at this point in the history
  • Loading branch information
jannon committed Oct 4, 2018
2 parents e08b814 + bca9d56 commit 1258c46
Show file tree
Hide file tree
Showing 22 changed files with 738 additions and 29 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
Dean Gardiner <me@dgardiner.net>
Jannon Frank <theoriginal@gmail.com>
Kolja Lampe <razzeee@gmail.com>
Lalit Maganti <lalitmaganti@gmail.com>
Leticia Hernández <leticia.hu@gmail.com>
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

setup(
setup_requires=PYTEST_RUNNER + [
'pbr>=1.9',
'pbr>=1.9,<=3.1.1',
'setuptools>=17.1'
],
pbr=True,
Expand Down
90 changes: 90 additions & 0 deletions tests/fixtures/api.trakt.tv/shows/1390/progress/watched.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
{
"aired": 10,
"completed": 6,
"last_watched_at": "2015-03-21T19:03:58.000Z",
"reset_at": "2015-03-21T19:03:58.000Z",
"seasons": [
{
"number": 1,
"aired": 8,
"completed": 6,
"episodes": [
{
"number": 1,
"completed": true,
"last_watched_at": "2015-03-21T19:03:58.000Z"
},
{
"number": 2,
"completed": true,
"last_watched_at": "2015-03-21T19:03:58.000Z"
},
{
"number": 3,
"completed": true,
"last_watched_at": "2015-03-21T19:03:58.000Z"
},
{
"number": 4,
"completed": true,
"last_watched_at": "2015-03-21T19:03:58.000Z"
},
{
"number": 5,
"completed": true,
"last_watched_at": "2015-03-21T19:03:58.000Z"
},
{
"number": 6,
"completed": true,
"last_watched_at": "2015-03-21T19:03:58.000Z"
},
{
"number": 7,
"completed": false,
"last_watched_at": null
},
{
"number": 8,
"completed": false,
"last_watched_at": null
},
{
"number": 9,
"completed": false,
"last_watched_at": null
},
{
"number": 10,
"completed": false,
"last_watched_at": null
}
]
}
],
"hidden_seasons": [],
"next_episode": {
"season": 1,
"number": 7,
"title": "You Win or You Die",
"ids": {
"trakt": 73646,
"tvdb": 3436461,
"imdb": "tt1837863",
"tmdb": 63062,
"tvrage": 1065036404
}
},
"last_episode": {
"season": 1,
"number": 5,
"title": "You Die and You Win",
"ids": {
"trakt": 73646,
"tvdb": 3436461,
"imdb": "tt1837863",
"tmdb": 63062,
"tvrage": 1065036404
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
{
"aired": 10,
"completed": 6,
"last_watched_at": "2015-03-21T19:03:58.000Z",
"reset_at": null,
"seasons": [
{
"number": 1,
"aired": 8,
"completed": 6,
"episodes": [
{
"number": 1,
"completed": true,
"last_watched_at": "2015-03-21T19:03:58.000Z"
},
{
"number": 2,
"completed": true,
"last_watched_at": "2015-03-21T19:03:58.000Z"
},
{
"number": 3,
"completed": true,
"last_watched_at": "2015-03-21T19:03:58.000Z"
},
{
"number": 4,
"completed": true,
"last_watched_at": "2015-03-21T19:03:58.000Z"
},
{
"number": 5,
"completed": true,
"last_watched_at": "2015-03-21T19:03:58.000Z"
},
{
"number": 6,
"completed": true,
"last_watched_at": "2015-03-21T19:03:58.000Z"
},
{
"number": 7,
"completed": false,
"last_watched_at": null
},
{
"number": 8,
"completed": false,
"last_watched_at": null
},
{
"number": 9,
"completed": false,
"last_watched_at": null
},
{
"number": 10,
"completed": false,
"last_watched_at": null
}
]
}
],
"hidden_seasons": [
{
"number": 2,
"ids": {
"trakt": 3051,
"tvdb": 498968,
"tmdb": 53334
}
}
],
"next_episode": {
"season": 1,
"number": 7,
"title": "You Win or You Die",
"ids": {
"trakt": 73646,
"tvdb": 3436461,
"imdb": "tt1837863",
"tmdb": 63062,
"tvrage": 1065036404
}
}
}
8 changes: 4 additions & 4 deletions tests/oauth/test_oauth.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,16 @@ def test_authorize_url():

def test_pin_url():
with Trakt.configuration.app(id=1234):
assert_url(Trakt['oauth'].pin_url(), '/pin/1234')
assert_url(Trakt['oauth/pin'].url(), '/pin/1234')

with pytest.raises(ValueError):
Trakt['oauth'].pin_url()
Trakt['oauth/pin'].url()


def test_token():
with HTTMock(mock.oauth_token, mock.unknown):
# Validate `token_exchange` request/response
assert Trakt['oauth'].token('ABCD1234', 'urn:ietf:wg:oauth:2.0:oob') == {
assert Trakt['oauth'].token_exchange('ABCD1234', 'urn:ietf:wg:oauth:2.0:oob') == {
'access_token': 'mock-access_token',
'token_type': 'bearer',
'expires_in': 7200,
Expand All @@ -57,7 +57,7 @@ def test_token():

# Ensure `token_exchange` raises a `ValueError` on incorrect configuration
with pytest.raises(ValueError):
assert TraktClient()['oauth'].token('ABCD1234', 'urn:ietf:wg:oauth:2.0:oob')
assert TraktClient()['oauth'].token_exchange('ABCD1234', 'urn:ietf:wg:oauth:2.0:oob')


def test_token_exchange():
Expand Down
142 changes: 142 additions & 0 deletions tests/test_progress.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
from __future__ import absolute_import, division, print_function

from tests.core import mock
from trakt import Trakt

from hamcrest import assert_that, has_entries
from httmock import HTTMock


def test_watched_progress():
with HTTMock(mock.fixtures, mock.unknown):
with Trakt.configuration.auth('mock', 'mock'):
progress = Trakt['shows'].watched_progress(1390)

assert progress is not None
assert progress.reset_at is not None
assert progress.last_progress_change is not None
assert progress.aired == 10
assert progress.completed == 6

assert len(progress.seasons) == 1
assert progress.seasons[1].aired == 8
assert progress.seasons[1].completed == 6

assert len(progress.seasons[1].episodes) == 10
assert progress.seasons[1].episodes[1].progress_timestamp is not None

assert len(progress.hidden_seasons) == 0

assert progress.next_episode.pk == (1, 7)
assert progress.last_episode.pk == (1, 5)


def test_watched_progress_plus_hidden():
with HTTMock(mock.fixtures, mock.unknown):
with Trakt.configuration.auth('mock', 'mock'):
progress = Trakt['shows'].watched_progress('game-of-thrones', hidden=True)

assert progress is not None
assert progress.reset_at is None

assert len(progress.hidden_seasons) == 1

assert_that(progress.to_dict(), has_entries({
'aired': 10,
'completed': 6,
'last_watched_at': '2015-03-21T19:03:58.000-00:00',
'reset_at': None,
'seasons': [
{
'number': 1,
'aired': 8,
'completed': 6,
'episodes': [
{
'number': 1,
'completed': True,
'last_watched_at': '2015-03-21T19:03:58.000-00:00'
},
{
'number': 2,
'completed': True,
'last_watched_at': '2015-03-21T19:03:58.000-00:00'
},
{
'number': 3,
'completed': True,
'last_watched_at': '2015-03-21T19:03:58.000-00:00'
},
{
'number': 4,
'completed': True,
'last_watched_at': '2015-03-21T19:03:58.000-00:00'
},
{
'number': 5,
'completed': True,
'last_watched_at': '2015-03-21T19:03:58.000-00:00'
},
{
'number': 6,
'completed': True,
'last_watched_at': '2015-03-21T19:03:58.000-00:00'
},
{
'number': 7,
'completed': False,
'last_watched_at': None
},
{
'number': 8,
'completed': False,
'last_watched_at': None
},
{
'number': 9,
'completed': False,
'last_watched_at': None
},
{
'number': 10,
'completed': False,
'last_watched_at': None
}
]
}
],
'hidden_seasons': [
{
'number': 2,
'ids': {
'trakt': '3051',
'tvdb': '498968',
'tmdb': '53334'
}
}
],
'next_episode': {
'season': 1,
'number': 7,
'title': 'You Win or You Die',
'ids': {
'trakt': '73646',
'tvdb': '3436461',
'imdb': 'tt1837863',
'tmdb': '63062',
'tvrage': '1065036404'
}
}
}))


def test_collection_progress():
with HTTMock(mock.fixtures, mock.unknown):
with Trakt.configuration.auth('mock', 'mock'):
progress = Trakt['shows'].collection_progress(1390)

assert progress is not None
assert progress.reset_at is None
assert progress.last_progress_change is not None

assert progress.seasons[1].episodes[1].progress_timestamp is not None
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ deps =
flake8-bugbear>=17.3.0
flake8-docstrings>=0.2.7
flake8-future-import>=0.4.3
flake8-import-order>=0.9
flake8-import-order>=0.9,<=0.16
flake8-import-order-fuzeman>=1.1.1
flake8-quotes>=0.9.0
commands =
Expand Down
2 changes: 1 addition & 1 deletion trakt/core/emitter.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ def __call_sync(cls, callback, args=None, kwargs=None, event=None):
callback(*args, **kwargs)
return True
except Exception as ex:
log.warn('[%s] Exception raised in: %s - %s' % (event, cls.__function_name(callback), ex), exc_info=True)
log.warning('[%s] Exception raised in: %s - %s' % (event, cls.__function_name(callback), ex), exc_info=True)
return False

def __call_async(self, callback, args=None, kwargs=None, event=None):
Expand Down
2 changes: 1 addition & 1 deletion trakt/core/errors.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def log_request_error(logger, response):
message = 'Request failed: %s: "%%s" (%%s)' % (response.status_code,)

# Log warning
logger.warn(message, desc, name, extra={
logger.warning(message, desc, name, extra={
'data': {
'http.headers': {
'cf-ray': response.headers.get('cf-ray'),
Expand Down

0 comments on commit 1258c46

Please sign in to comment.