"""Unit test for lyrics logic.""" import json from unittest.mock import patch from oto.adaptors.flask import flaskify import pytest from lyrics.logic.lyrics import has_explicit_lyrics @pytest.fixture def fixture_lyrics(): """Return a dict of lyrics data for testing.""" lyrics = 'abc joder carajo carajoa' return lyrics @patch('lyrics.features.is_feature_flag_enabled', return_value=False) def test_has_explicit_lyrics_with_ff_off( is_feature_flag_enabled, fixture_lyrics): """Check if has_explicit_lyrics is called when feature is disabled.""" # feature_engine.force_flag( # feature_names.BLOCK_MORE_EXPLICIT_WORDS_IN_DPB, False) result = flaskify(has_explicit_lyrics(fixture_lyrics)) data = json.loads(result.data.decode()) assert result.status_code == 200 assert data == {'has_explicit_lyrics': False} @patch('lyrics.features.is_feature_flag_enabled', return_value=True) def test_has_explicit_lyrics_with_ff_on( is_feature_flag_enabled, fixture_lyrics): """Check if has_explicit_lyrics is called when feature is enabled.""" result = flaskify(has_explicit_lyrics(fixture_lyrics)) data = json.loads(result.data.decode()) assert result.status_code == 200 assert data == {'has_explicit_lyrics': True}