"""Tests for model_tools.""" from unittest.mock import patch import model_tools from tests import helpers @patch('model_tools.requests') def test_get_main_instance_model_json(requests, get_mock_model_json): """Return dict.""" requests.get.return_value = get_mock_model_json result = model_tools.get_main_instance_model_json('manson') assert result == helpers.model_json @patch('model_tools.requests') def test_check_model_name_on_client_instance_positive( requests, get_mock_model_json): """Return True.""" requests.get.return_value = get_mock_model_json result = model_tools.check_model_name_on_client_instance('correct') assert result is True @patch('model_tools.requests') def test_check_model_name_on_client_instance_negative( requests, response_404): """Return False.""" requests.get.return_value = response_404 result = model_tools.check_model_name_on_client_instance('wrong') assert result is False @patch('model_tools.requests') def test_update_model_on_client_instance(requests, get_mock_model_json): """Return dict.""" requests.patch.return_value = get_mock_model_json result = model_tools.update_model_on_client_instance('manson', {}) assert result == helpers.model_json @patch('model_tools.requests') def test_post_model_to_client_instance(requests, get_mock_model_json): """Return dict.""" requests.post.return_value = get_mock_model_json result = model_tools.post_model_to_client_instance({}) assert result == helpers.model_json @patch('model_tools.check_model_name_on_client_instance') @patch('model_tools.update_model_on_client_instance') def test_sync_lookml_model_update( update_model_on_client_instance, check_model_name_on_client_instance): """Call update.""" check_model_name_on_client_instance.return_value = True model_tools.sync_lookml_model('manson', {}) update_model_on_client_instance.assert_called() @patch('model_tools.check_model_name_on_client_instance') @patch('model_tools.post_model_to_client_instance') def test_sync_lookml_model_post( post_model_to_client_instance, check_model_name_on_client_instance): """Call post.""" check_model_name_on_client_instance.return_value = False model_tools.sync_lookml_model('flickers', {}) post_model_to_client_instance.assert_called() def test_get_set_of_explore_names(): """Return set.""" result = model_tools.get_set_of_explore_names( helpers.model_json) assert result == {'digital'} @patch('model_tools.requests') def test_get_model_explore_json( requests, get_mock_model_explore_json): """Return dict.""" requests.get.return_value = get_mock_model_explore_json result = model_tools.get_model_explore_json('manson', 'digital') assert result == helpers.model_explore def test_get_all_view_files(): """Return set.""" result = model_tools.get_all_view_files(helpers.model_explore) assert result == {'artificial_light', 'listed_things'} @patch('model_tools.get_model_explore_json') def test_get_set_of_views_for_explore(get_model_explore_json): """Return set.""" get_model_explore_json.return_value = helpers.model_explore result = model_tools.get_set_of_views_for_explore('manson', 'digital') assert result == {'artificial_light', 'listed_things', 'digital'}