def test_find_method(self): builder = Builder(self.get_mock_query_builder()) builder.set_model(self.get_mock_model()) builder.get_query().where = mock.MagicMock() builder.first = mock.MagicMock(return_value='baz') result = builder.find('bar', ['column']) builder.get_query().where.assert_called_once_with( 'foo_table.foo', '=', 'bar') self.assertEqual('baz', result)
def test_find_or_new_model_found(self): model = self.get_mock_model() model.find_or_new = mock.MagicMock(return_value='baz') builder = Builder(self.get_mock_query_builder()) builder.set_model(model) builder.get_query().where = mock.MagicMock() builder.first = mock.MagicMock(return_value='baz') expected = model.find_or_new('bar', ['column']) result = builder.find('bar', ['column']) builder.get_query().where.assert_called_once_with( 'foo_table.foo', '=', 'bar') self.assertEqual(expected, result)
def test_find_with_many(self): model = self.get_mock_model() builder = Builder(self.get_mock_query_builder()) builder.set_model(model) builder.get_query().where_in = mock.MagicMock() builder.get = mock.MagicMock(return_value='baz') result = builder.find([1, 2], ['column']) self.assertEqual('baz', result) builder.get_query().where_in.assert_called_once_with( 'foo_table.foo', [1, 2]) builder.get.assert_called_once_with(['column'])
def test_find_or_new_model_not_found(self): model = self.get_mock_model() model.find_or_new = mock.MagicMock(return_value=self.get_mock_model()) builder = Builder(self.get_mock_query_builder()) builder.set_model(model) builder.get_query().where = mock.MagicMock() builder.first = mock.MagicMock(return_value=None) result = model.find_or_new('bar', ['column']) find_result = builder.find('bar', ['column']) builder.get_query().where.assert_called_once_with( 'foo_table.foo', '=', 'bar') self.assertIsNone(find_result) self.assertIsInstance(result, Model)