return self._compare('LIKE', other)
def in_(self, *other):
- if _is_literal(other[0]):
+ if len(other) == 0:
+ return self.__eq__(None)
+ elif len(other) == 1:
+ return self.__eq__(other[0])
+ elif _is_literal(other[0]):
return self._compare('IN', CompoundClause(',', other))
else:
return self._compare('IN', union(*other))
objects[3].user.user_name = 'imnewlyadded'
self.assert_sql(db, lambda: objectstore.uow().commit(), [
(
- "INSERT INTO users (user_id, user_name) VALUES (:user_id, :user_name)",
- {'user_id': None, 'user_name': 'imnewlyadded'}
+ "INSERT INTO users (user_name) VALUES (:user_name)",
+ {'user_name': 'imnewlyadded'}
),
(
"UPDATE email_addresses SET user_id=:user_id, email_address=:email_address WHERE email_addresses.address_id = :email_addresses_address_id",
self.assert_sql(db, lambda: objectstore.commit(),
[
(
- "INSERT INTO email_addresses (address_id, user_id, email_address) VALUES (:address_id, :user_id, :email_address)",
- {'email_address': 'hi', 'address_id': None, 'user_id': 7}
+ "INSERT INTO email_addresses (user_id, email_address) VALUES (:user_id, :email_address)",
+ {'email_address': 'hi', 'user_id': 7}
),
]
)