"""Tests for art_relations module.""" from unittest.mock import Mock from unittest.mock import patch from flows import art_relations @patch('flows.art_relations.MySQLdb') def test__connection(mysql): """Test _connection function.""" connection_object = Mock() mysql.connect.return_value = connection_object result = art_relations._connection() assert result == connection_object @patch('flows.art_relations.database') @patch('flows.art_relations._connection') def test_context(_connection, database): """Test context function.""" conn = Mock() _connection.return_value = conn art_relations.context() assert _connection.called database.context.assert_called_once_with(conn) @patch('flows.art_relations.database') @patch('flows.art_relations._connection') def test_context_with_args(_connection, database): """Test context function with args.""" conn = Mock() arg = 'hello world' _connection.return_value = conn art_relations.context(arg, foo='bar') assert _connection.called database.context.assert_called_once_with(conn, arg, foo='bar') @patch('flows.art_relations.database') @patch('flows.art_relations._connection') def test_execute(_connection, database): """Test execute function.""" conn = Mock() params = Mock() sql = Mock() _connection.return_value = conn art_relations.execute(sql, params) assert _connection.called database.execute.assert_called_once_with(conn, sql, params) @patch('flows.art_relations.database') @patch('flows.art_relations._connection') def test_execute_with_args(_connection, database): """Test execute function with args.""" conn = Mock() params = Mock() sql = Mock() arg = 'hello world' _connection.return_value = conn art_relations.execute(sql, params, arg, foo='bar') assert _connection.called database.execute.assert_called_once_with(conn, sql, params, arg, foo='bar') @patch('flows.art_relations.database') @patch('flows.art_relations._connection') def test_query(_connection, database): """Test query function.""" conn = Mock() params = Mock() sql = Mock() arg = 'hello world' _connection.return_value = conn art_relations.query(sql, params, arg, foo='bar') assert _connection.called database.query.assert_called_once_with(conn, sql, params, arg, foo='bar')