test_meta_data.py 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. from yandex_music import MetaData
  2. class TestMetaData:
  3. album = 'VK Virus Bot'
  4. volume = 1
  5. year = 2018
  6. number = 6
  7. genre = 'Techno'
  8. lyricist = (
  9. 'Можете величать меня исчадьем ада\nМожете линчевать меня, мыча как стадо\nНо на мне нет печати зла, '
  10. 'сгущать не надо\nКраски. Я счастлив, что я не раб мещанских взглядов\nМожете обличать меня, крича с экрана'
  11. '\nМожете исключать меня из ваших кланов\nНо вы же сами не без греха. Признай, что я был\nК несчастью таким'
  12. ' же, как ты. Ша!\nМолчать и на пол!\n\nСложней всего было найти тротил и запал\nИ пронести на бал, фитиль'
  13. ' был подозрительно мал\nАктовый зал, АК достал, с предохранителя снял\nКак удивится директриса, лишь'
  14. ' увидев меня\nОдиннадцатый "А", не хотите мира - выйдет война\nНет, я не маньяк, при чем здесь Чикатило,'
  15. ' Битцевский парк?\nТерроризма признанный акт - для других единственный шанс\nЕстественный шаг - объявить'
  16. ' обидчикам личный джихад\nЯ терпеливо ждал, но что делать - мой класс - педики\nЖертвы маркетинга,'
  17. ' масс-медиа и косметики\nВы все в ответе за то несчастье, что сейчас светит вам\nПоследний звонок,'
  18. ' в шейный позвонок мой глаз метит вам!\nЗахожу без шума и спецэффектов - им деться некуда\nПалю известной'
  19. ' в школе сердцеедке в сердце метко:\nПрости золотая, но врачи тебя не залатают\nНехуй рвать мои письма - '
  20. 'толпа бежит из зала, тая\n\nМожете величать меня исчадьем ада\nМожете линчевать меня, мыча как стадо\nНо '
  21. 'на мне нет печати зла, сгущать не надо\nКраски. Я счастлив, что я не раб мещанских взглядов\nМожете '
  22. 'обличать меня, крича с экрана\nМожете исключать меня из ваших кланов\nНо вы же сами не без греха. '
  23. 'Признай, что я был\nК несчастью таким же, как ты. Ша!\nМолчать и на пол!\n\nШарики, ленты, рядышком '
  24. 'двоечник и отличник\nСтонущий от боли обидчик - что может быть еще мелодичней?\nТе, кто свинцом не '
  25. 'напичкан забаррикадировались в коридоре\nЯ перезарядил, проверяю затвор\nИ стреляю в упор. Иду гулять по '
  26. 'школе\nЯ не сатанист, не фанат металла, влом\nБыть таким. Их стволы - металлолом\nНе псих, не фрик, не '
  27. 'играл давно за компом\nТак что не верь ментам, народ\nЖизнь, как игра в домино\nВсем важно одно - забить '
  28. 'отпущенья козла\nВы мне мученье доставили, но ваш час быть мишенью настал!\nВремя замедляет свой бег\nЯ '
  29. 'не понимаю кто стреляет по мне\nГде-то падает дверь\nA la guerre comme а la guerre,\nСнайперы мелькают в '
  30. 'окне\nИз меня что-то начинает течь\nВезде томатный кетчуп, мне обеспечена вечность\nВ руке детонатор...\n'
  31. 'Я просыпаюсь рывком, покрыт испариной лоб -\nКошмар, а не сон, в кровати жарко - я шагаю во двор\n'
  32. 'Спускаюсь в погреб,отпираю ржавый медный замок\nИ собираю ствол АК - завтра последний звонок...\n\n'
  33. 'Можете величать меня исчадьем ада\nМожете линчевать меня, мыча как стадо\nНо на мне нет печати зла, '
  34. 'сгущать не надо\nКраски. Я счастлив, что я не раб мещанских взглядов\nМожете обличать меня, крича с экрана'
  35. '\nМожете исключать меня из ваших кланов\nНо вы же сами не без греха. Признай, что я был\nК несчастью таким'
  36. " же, как ты. Ша!\nМолчать и на пол!\n\nСпасибо Kaas'у, так что не смейте обвинять меня в плагиате\nВсе"
  37. ' сейчас на Одноклассниках, ВКонтакте\nНо далеко не все одноклассники в контакте\nПонимаете, о чем идет'
  38. ' речь?\nЙее, Оксимирон. В Лондоне наконец-то солнце'
  39. )
  40. version = 'Provided to YouTube by Pias UK Limited'
  41. composer = 'oXEfhutXNHU'
  42. def test_expected_values(self, meta_data):
  43. assert meta_data.album == self.album
  44. assert meta_data.volume == self.volume
  45. assert meta_data.year == self.year
  46. assert meta_data.number == self.number
  47. assert meta_data.genre == self.genre
  48. assert meta_data.lyricist == self.lyricist
  49. assert meta_data.version == self.version
  50. assert meta_data.composer == self.composer
  51. def test_de_json_none(self, client):
  52. assert MetaData.de_json({}, client) is None
  53. def test_de_json_required(self, client):
  54. MetaData.de_json({}, client)
  55. def test_de_json_all(self, client):
  56. json_dict = {
  57. 'album': self.album,
  58. 'volume': self.volume,
  59. 'year': self.year,
  60. 'number': self.number,
  61. 'genre': self.genre,
  62. 'lyricist': self.lyricist,
  63. 'version': self.version,
  64. 'composer': self.composer,
  65. }
  66. meta_data = MetaData.de_json(json_dict, client)
  67. assert meta_data.album == self.album
  68. assert meta_data.volume == self.volume
  69. assert meta_data.year == self.year
  70. assert meta_data.number == self.number
  71. assert meta_data.genre == self.genre
  72. assert meta_data.lyricist == self.lyricist
  73. assert meta_data.version == self.version
  74. assert meta_data.composer == self.composer
  75. def test_equality(self):
  76. a = MetaData(self.album, self.volume, self.year)
  77. b = MetaData(self.album, 0, 2016)
  78. c = MetaData(self.album, self.volume, self.year)
  79. assert a != b
  80. assert hash(a) != hash(b)
  81. assert a is not b
  82. assert a == c