33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
import mock
|
|
import unittest
|
|
|
|
import kojihub
|
|
|
|
|
|
class TestUpdateProcessor(unittest.TestCase):
|
|
|
|
def test_basic_instantiation(self):
|
|
kojihub.UpdateProcessor('sometable') # No exception!
|
|
|
|
def test_to_string_with_data(self):
|
|
proc = kojihub.UpdateProcessor('sometable', data={'foo': 'bar'})
|
|
actual = str(proc)
|
|
expected = 'UPDATE sometable SET foo = %(data.foo)s'
|
|
self.assertEqual(actual, expected)
|
|
|
|
def test_to_values_from_data(self):
|
|
proc = kojihub.UpdateProcessor('sometable', data={'foo': 'bar'})
|
|
actual = proc.get_values()
|
|
expected = {'data.foo': 'bar'}
|
|
self.assertEqual(actual, expected)
|
|
|
|
@mock.patch('kojihub.context')
|
|
def test_simple_execution_with_iterate(self, context):
|
|
cursor = mock.MagicMock()
|
|
context.cnx.cursor.return_value = cursor
|
|
proc = kojihub.UpdateProcessor('sometable', data={'foo': 'bar'})
|
|
proc.execute()
|
|
cursor.execute.assert_called_once_with(
|
|
'UPDATE sometable SET foo = %(data.foo)s',
|
|
{'data.foo': 'bar'},
|
|
)
|