test_tracks_similar.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import pytest
  2. from yandex_music import SimilarTracks
  3. @pytest.fixture(scope='class')
  4. def similar_tracks(track):
  5. return SimilarTracks(track, [track])
  6. class TestSimilarTracks:
  7. def test_expected_values(self, similar_tracks, track):
  8. assert similar_tracks.track == track
  9. assert similar_tracks.similar_tracks == [track]
  10. def test_de_json_none(self, client):
  11. assert SimilarTracks.de_json({}, client) is None
  12. def test_de_json_required(self, client, track):
  13. json_dict = {'track': track.to_dict(), 'similar_tracks': [track.to_dict()]}
  14. similar_tracks = SimilarTracks.de_json(json_dict, client)
  15. assert similar_tracks.track == track
  16. assert similar_tracks.similar_tracks == [track]
  17. def test_de_json_all(self, client, track):
  18. json_dict = {'track': track.to_dict(), 'similar_tracks': [track.to_dict()]}
  19. similar_tracks = SimilarTracks.de_json(json_dict, client)
  20. assert similar_tracks.track == track
  21. assert similar_tracks.similar_tracks == [track]
  22. def test_equality(self, track):
  23. a = SimilarTracks(track, [track])
  24. b = SimilarTracks(None, [track])
  25. c = SimilarTracks(track, [track])
  26. assert a != b
  27. assert hash(a) != hash(b)
  28. assert a is not b
  29. assert a == c
  30. def test_len(self, similar_tracks):
  31. assert len(similar_tracks) == len(similar_tracks.similar_tracks)
  32. def test_getitem(self, similar_tracks):
  33. assert similar_tracks[0] == similar_tracks.similar_tracks[0]
  34. def test_iter(self, similar_tracks):
  35. assert list(similar_tracks) == similar_tracks.similar_tracks