def test_table_returns_query_builder(self): connection = Connection(None, 'database') builder = connection.table('users') self.assertIsInstance(builder, QueryBuilder) self.assertEqual('users', builder.from__) self.assertEqual(connection.get_query_grammar(), builder.get_grammar())
def test_try_again_if_caused_by_lost_connection_is_called(self): connection = flexmock(Connection(None, 'database')) cursor = flexmock() connection.should_receive( '_try_again_if_caused_by_lost_connection').once() connection.should_receive('_get_cursor_for_select').and_return(cursor) connection.should_receive('reconnect') cursor.should_receive('execute').and_raise(Exception('error')) connection.select('SELECT * FROM "users"')
def test_try_again_if_caused_by_lost_connection_is_called(self): connection = flexmock(Connection(None, "database")) cursor = flexmock() connection.should_receive( "_try_again_if_caused_by_lost_connection").once() connection.should_receive("_get_cursor_for_select").and_return(cursor) connection.should_receive("reconnect") cursor.should_receive("execute").and_raise(Exception("error")) connection.select('SELECT * FROM "users"')
def test_prefix_set_to_none(self): connection = Connection(None, 'database', None) self.assertIsNotNone(connection.get_table_prefix()) self.assertEqual('', connection.get_table_prefix())
def test_transaction(self): connection = Connection(None, 'database') connection.begin_transaction = mock.MagicMock(unsafe=True) connection.commit = mock.MagicMock(unsafe=True) connection.rollback = mock.MagicMock(unsafe=True) connection.insert = mock.MagicMock(return_value=1) with connection.transaction(): connection.table('users').insert({'name': 'foo'}) connection.begin_transaction.assert_called_once() connection.commit.assert_called_once() self.assertFalse(connection.rollback.called) connection.begin_transaction.reset_mock() connection.commit.reset_mock() connection.rollback.reset_mock() try: with connection.transaction(): connection.table('users').insert({'name': 'foo'}) raise Exception('foo') except Exception as e: self.assertEqual('foo', str(e)) connection.begin_transaction.assert_called_once() connection.rollback.assert_called_once() self.assertFalse(connection.commit.called)
def test_lost_connection_returns_true_with_capitalized_error(self): connection = Connection(None, "database") self.assertTrue( connection._caused_by_lost_connection("Lost Connection"))
def test_transaction(self): connection = Connection(None, "database") connection.begin_transaction = mock.MagicMock(unsafe=True) connection.commit = mock.MagicMock(unsafe=True) connection.rollback = mock.MagicMock(unsafe=True) connection.insert = mock.MagicMock(return_value=1) with connection.transaction(): connection.table("users").insert({"name": "foo"}) connection.begin_transaction.assert_called_once() connection.commit.assert_called_once() self.assertFalse(connection.rollback.called) connection.begin_transaction.reset_mock() connection.commit.reset_mock() connection.rollback.reset_mock() try: with connection.transaction(): connection.table("users").insert({"name": "foo"}) raise Exception("foo") except Exception as e: self.assertEqual("foo", str(e)) connection.begin_transaction.assert_called_once() connection.rollback.assert_called_once() self.assertFalse(connection.commit.called)