"""Test context util check_nonconcurrent_workflows.""" from unittest.mock import patch import pytest from feed_ingestion.util.check_nonconcurrent_workflows import \ check_concurrent_status @pytest.fixture def mock_get_names_of_running_workflows(): """Yield get_names_of_running_workflows.""" task_path = ( 'feed_ingestion.util.check_nonconcurrent_workflows.' 'get_names_of_running_workflows_by_type') with patch(task_path) as mock_get_names_of_running_workflows: yield mock_get_names_of_running_workflows def test_check_concurrent_status_if_no_running_executions( mock_get_names_of_running_workflows): """Test check_concurrent_status if there is no running etl.""" mock_get_names_of_running_workflows.return_value = [] result = check_concurrent_status('test', 'licensor', 1) assert result is None def test_check_concurrent_status_with_one_running_execution( mock_get_names_of_running_workflows): """Test check_concurrent_status if there is one etl except current.""" # one of this executions is current mock_get_names_of_running_workflows.return_value = [ 'etl_feed_ingestion_licensor-2020-04-01', 'etl_feed_ingestion_licensor-2020-04-02'] result = check_concurrent_status('test', 'licensor', 1) assert result == {'stop': True} def test_check_concurrent_status_with_one_running_execution_if_it_is_allowed( mock_get_names_of_running_workflows, monkeypatch): """Test check_concurrent_status if there is one etl except current.""" mock_get_names_of_running_workflows.return_value = [ 'etl_feed_ingestion_licensor-2020-04-01'] result = check_concurrent_status('test', 'licensor', 2) assert result is None