import pytest import allure from datetime import datetime from assertpy import assert_that entity_type = 'track' input_tiktok_views = [ (0, 1000), (1000, 10000), (10000, 100000), (100000, 500000), (500000, 1000000), (1000000, 5000000), (5000000, 10000000), (10000000, 100000000000), ] input_tiktok_min_creations = [10, 100, 1000, 2000, 5000, 10000] input_tiktok_likes = [ (0, 1000), (10000, 100000), (100000, 200000), (200000, 500000), (500000, 1000000), (1000000, 5000000), (5000000, 100000000000) ] input_tiktok_comments = [ (5, 10), (10, 50), (50, 100), (100, 200), (200, 1000), (1000, 100000000000) ] input_tiktok_mentions = [ (0, 5), (5, 10), (10, 25), (25, 50), (50, 75), (75, 100000000000) ] @allure.testcase("https://data-analytics.atlassian.net/browse/DNAD-1605") @pytest.mark.parametrize("min_val, max_val", input_tiktok_views) def test_tiktok_views(api, min_val, max_val): data = {"tiktok": {"min_views": min_val, "max_views": max_val}} entities = api.get_entities(entity_type=entity_type, discovery_data=data) for entity in entities: tested_value = float(entity['tiktok']['views']['current_value']) api.check_entity_in_range(entity, tested_value, min_val, max_val) @allure.testcase("https://data-analytics.atlassian.net/browse/DNAD-1605") @pytest.mark.parametrize("min_val", input_tiktok_min_creations) def test_tiktok_min_creations(api, min_val): data = {"tiktok": {"min_posts_latest": min_val}} entities = api.get_entities(entity_type=entity_type, discovery_data=data) for entity in entities: tested_value = float(entity['tiktok']['posts_latest']['current_value']) api.check_entity_in_range(entity, tested_value, min_val) @allure.testcase("https://data-analytics.atlassian.net/browse/DNAD-1605") @pytest.mark.parametrize("min_val, max_val", input_tiktok_likes) def test_tiktok_likes(api, min_val, max_val): data = {"tiktok": {"min_likes": min_val, "max_likes": max_val}} entities = api.get_entities(entity_type=entity_type, discovery_data=data) for entity in entities: tested_value = float(entity['tiktok']['likes']['current_value']) api.check_entity_in_range(entity, tested_value, min_val, max_val) @allure.testcase("https://data-analytics.atlassian.net/browse/DNAD-1605") @pytest.mark.parametrize("min_val, max_val", input_tiktok_comments) def test_tiktok_comments(api, min_val, max_val): data = {"tiktok": {"min_comments": min_val, "max_comments": max_val}} entities = api.get_entities(entity_type=entity_type, discovery_data=data) for entity in entities: tested_value = float(entity['tiktok']['comments']['current_value']) api.check_entity_in_range(entity, tested_value, min_val, max_val) @allure.testcase("https://data-analytics.atlassian.net/browse/DNAD-1605") @pytest.mark.parametrize("min_val, max_val", input_tiktok_mentions) def test_tiktok_mentions(api, min_val, max_val): data = {"tiktok": {"min_mentions": min_val, "max_mentions": max_val}} entities = api.get_entities(entity_type=entity_type, discovery_data=data) for entity in entities: tested_value = float(entity['tiktok']['mentions']['current_value']) api.check_entity_in_range(entity, tested_value, min_val, max_val) @allure.testcase("https://data-analytics.atlassian.net/browse/DNAD-1605") def test_tiktok_chart_type(api): data = {"tiktok": {"chart_type": "VIEWS"}} entities = api.get_entities(entity_type=entity_type, discovery_data=data) for entity in entities: actual_chart_type = entity['tiktok']['chart_type'] assert_that(actual_chart_type == 'views').is_true() data = {"tiktok": {}} entities = api.get_entities(entity_type=entity_type, discovery_data=data) for entity in entities: actual_chart_type = entity['tiktok']['chart_type'] assert_that(actual_chart_type == 'likes').is_true()