diff --git a/docs/source/NEWS.rst b/docs/source/NEWS.rst index d24c52d..0a8424a 100644 --- a/docs/source/NEWS.rst +++ b/docs/source/NEWS.rst @@ -1,6 +1,14 @@ Changelog ========= +Release 18.3.0 (UNRELEASED) +--------------------------- + +Features +^^^^^^^^ + +- Allow passing only kwargs to `Database.create_collection()` + Release 18.2.0 (2018-07-19) --------------------------- diff --git a/tests/test_collection.py b/tests/test_collection.py index 26ad61a..75be3de 100644 --- a/tests/test_collection.py +++ b/tests/test_collection.py @@ -335,6 +335,15 @@ def tearDown(self): yield self.conn.drop_database(self.db) yield self.conn.disconnect() + @defer.inlineCallbacks + def test_WithOptions(self): + coll = yield self.db.create_collection("opttest", capped=True, size=4096) + self.assertTrue(isinstance(coll, Collection)) + + opts = yield coll.options() + self.assertEqual(opts["capped"], True) + self.assertEqual(opts["size"], 4096) + @defer.inlineCallbacks def test_Fail(self): # Not using assertFailure() here because it doesn't wait until deferred is diff --git a/txmongo/database.py b/txmongo/database.py index 7ccb9ef..4ec8c7d 100644 --- a/txmongo/database.py +++ b/txmongo/database.py @@ -78,6 +78,10 @@ def create_collection(self, name, options=None, write_concern=None, collection = Collection(self, name, write_concern=write_concern, codec_options=codec_options) + if options is None and kwargs: + options = kwargs + kwargs = {} + if options: if "size" in options: options["size"] = float(options["size"])