"""Tests for channel traffic sources schema module.""" from analytics.schemas import channel_top_videos def test_channel_top_videos_schema(): """Test channel_traffic_sources converts to JSON object.""" mock_model_response = { "channel_id": "TEST", "top_channel_videos": [ { "average_view_duration_percentage": 74.043686874022, "premium_watch_time_minutes": 45287.61365, "views": 180121, "premium_views": 22232, "watch_time_minutes": 401156.0339, "average_view_duration_seconds": 131.797762466199, "video_id": "1", }, { "average_view_duration_percentage": 58.637196701543, "premium_watch_time_minutes": 10606.8897, "views": 177171, "premium_views": 6197, "watch_time_minutes": 328247.12536, "average_view_duration_seconds": 104.374210106936, "video_id": "2", }, { "average_view_duration_percentage": 76.877016625891, "premium_watch_time_minutes": 8889.0533, "views": 82280, "premium_views": 4201, "watch_time_minutes": 189962.16921, "average_view_duration_seconds": 136.841089129887, "video_id": "3", }, ], "sources": [ {"id": 453, "name": "YouTube"}, ], } expected_result = { "channel_id": "TEST", "top_channel_videos": [ { "averageViewDurationPercentage": 74.043686874022, "premiumWatchTimeMinutes": 45287.61365, "views": 180121, "premiumViews": 22232, "watchTimeMinutes": 401156.0339, "averageViewDurationSeconds": 131.797762466199, "videoId": "1", }, { "averageViewDurationPercentage": 58.637196701543, "premiumWatchTimeMinutes": 10606.8897, "views": 177171, "premiumViews": 6197, "watchTimeMinutes": 328247.12536, "averageViewDurationSeconds": 104.374210106936, "videoId": "2", }, { "averageViewDurationPercentage": 76.877016625891, "premiumWatchTimeMinutes": 8889.0533, "views": 82280, "premiumViews": 4201, "watchTimeMinutes": 189962.16921, "averageViewDurationSeconds": 136.841089129887, "videoId": "3", }, ], "sources": [ {"id": 453, "name": "YouTube"}, ], } result = channel_top_videos.ChannelTopVideosSchema().dump(mock_model_response) assert result == expected_result