import json import unittest from argparse import Namespace import allure import pytest from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig from app.api_client import ApiClient @pytest.mark.usefixtures("set_up", "one_time_set_up") class ComparisonPlaylistSupportTest(unittest.TestCase): track13 = json.loads(json.dumps(AppConfig.get("track13")), object_hook=lambda d: Namespace(**d)) track15 = json.loads(json.dumps(AppConfig.get("track15")), object_hook=lambda d: Namespace(**d)) track17 = json.loads(json.dumps(AppConfig.get("track17")), object_hook=lambda d: Namespace(**d)) track18 = json.loads(json.dumps(AppConfig.get("track18")), object_hook=lambda d: Namespace(**d)) track19 = json.loads(json.dumps(AppConfig.get("track19")), object_hook=lambda d: Namespace(**d)) track20 = json.loads(json.dumps(AppConfig.get("track20")), object_hook=lambda d: Namespace(**d)) @pytest.fixture(autouse=True) def classSetup(self): self.api_client = ApiClient() self.ts = TestStatus(self.driver) @allure.story("AP-2967") @allure.severity(allure.severity_level.NORMAL) @allure.title("""BE: Verification of 1st streaming date calculation""") @allure.description("""TC verifies that BE returns correct 1st streaming dates for each of the DSP.""") def test_1_streaming_date_calculation(self): for track in [self.track13, self.track15, self.track17, self.track18, self.track19, self.track20]: response = self.api_client.get_first_last_date_for_isrc(track.isrc) amazon = response["first_stream_date"]["amazon"][track.isrc] apple = response["first_stream_date"]["apple"][track.isrc] spotify = response["first_stream_date"]["spotify"][track.isrc] self.ts.markFinal(amazon == track.dates.amazon, "first date for isrc: {} for amazon is: {}".format(track.isrc, amazon)) self.ts.markFinal(spotify == track.dates.spotify, "first date for isrc: {} for spotify is: {}".format(track.isrc, spotify)) self.ts.markFinal(apple == track.dates.apple, "first date for for isrc: {} apple is: {}".format(track.isrc, apple))