{ "info": { "author": "Jean-Tiare Le Bigot", "author_email": "jtlebigot@socialludia.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Topic :: Database :: Database Engines/Servers", "Topic :: Education :: Testing", "Topic :: Internet", "Topic :: Software Development :: Testing" ], "description": "ddbmock -- a DynamoDB mock implementation.\n\nPresentation\n============\n\n`DynamoDB `_ is a minimalistic NoSQL engine\nprovided by Amazon as a part of their AWS product.\n\n**DynamoDB** allows you to store documents composed of unicode, number or binary\ndata as well are sets. Each tables must define a ``hash_key`` and may define a\n``range_key``. All other fields are optional.\n\n**DynamoDB** is really awesome but is terribly slooooow with managment tasks.\nThis makes it completly unusable in test environements.\n\n**ddbmock** brings a nice, tiny, in-memory or sqlite implementation of\nDynamoDB along with much better and detailed error messages. Among its niceties,\nit features a double entry point:\n\n - regular network based entry-point with 1:1 correspondance with stock DynamoDB\n - **embeded entry-point** with seamless boto intergration 1, ideal to avoid spinning yet another server.\n\n**ddbmock** is **not** intended for production use. It **will lose** your data.\nyou've been warned! I currently recommend the \"boto extension\" mode for unit-tests\nand the \"server\" mode for functional tests.\n\nInstallation\n============\n\n::\n\n $ pip install ddbmock\n\n\nDeveloping\n==========\n\n::\n\n $ hg clone ssh://hg@bitbucket.org/Ludia/dynamodb-mock\n $ pip install nose nosexcover coverage mock webtest boto\n $ python setup.py develop\n $ nosetests # --no-skip to run boto integration tests too\n\n\nWhat is ddbmock *not* useful for ?\n==================================\n\nDo *not* use it in production or as a cheap DynamoDB replacement. I'll never\nstress it enough.\n\nAll the focus was on simplicity/hackability and simulation quality. Nothing else.\n\nWhat is ddbmock useful for ?\n============================\n\n- FAST and RELIABLE unit testing\n- FAST and RELIABLE functional testing\n- experiment with DynamoDB API.\n- RELIABLE throughput planification\n- RELIABLE disk space planification\n- almost any DynamoDB simulation !\n\nddbmock can also persist your data in SQLITE. This open another vast range of\npossibilities :)\n\nCurrent status\n==============\n\n- pass all boto integration tests\n- support full table life-cycle\n- support full item life-cycle\n- support for all item limitations\n- accurate size, throughput reporting\n- no limits on concurent table operations\n- no limits for request/response size nor item count in these\n\nSee http://ddbmock.readthedocs.org/en/latest/pages/status.html for detailed\nup-to-date status.\n\nHistory\n=======\n\n - v1.0.0 (*): full documentation and bugfixes\n - v0.4.1: schema persistence + thread safety, bugfixes\n - v0.4.0: sqlite backend + throughput statistics + refactoring, more documentation, more tests\n - v0.3.2: batchWriteItem support + pass boto integration tests\n - v0.3.1: accuracy in item/table sizes + full test coverage\n - v0.3.0: first public release. Full table lifecycle + most items operations\n\n(?) indicates a future release. These are only ideas or \"nice to have\".\n\nExample usage\n=============\n\nRun as Regular client-server\n----------------------------\n\nIdeal for test environment. For stage and production I highly recommend using\nDynamoDB servers. ddbmock comes with no warranty and *will* **loose your data(tm)**.\n\nLaunch the server\n\n::\n\n $ pserve development.ini # launch the server on 0.0.0.0:6543\n\nStart the client\n\n::\n\n import boto\n from ddbmock import connect_boto_network\n\n # Use the provided helper to connect your *own* endpoint\n db = connect_boto_network()\n\n # Done ! just use it wherever in your project as usual.\n db.list_tables() # get list of tables (empty at this stage)\n\nNote: if you do not want to import ddbmock only for the helper, here is a\nreference implementation:\n\n::\n\n def connect_boto_network(host='localhost', port=6543):\n import boto\n from boto.regioninfo import RegionInfo\n endpoint = '{}:{}'.format(host, port)\n region = RegionInfo(name='ddbmock', endpoint=endpoint)\n return boto.connect_dynamodb(region=region, port=port, is_secure=False)\n\nRun as a standalone library\n---------------------------\n\nIdeal for unit testing or small scale automated functional tests. Nice to play\naround with boto DynamoDB API too :)\n\n::\n\n import boto\n from ddbmock import connect_boto_patch\n\n # Wire-up boto and ddbmock together\n db = connect_boto_patch()\n\n # Done ! just use it wherever in your project as usual.\n db.list_tables() # get list of tables (empty at this stage)\n\nNote, to clean patches made in ``boto.dynamodb.layer1``, you can call\n``clean_boto_patch()`` from the same module.\n\nRequirements\n============\n\n - Python 2.7.x\n - Pyramid >= 1.3\n - Boto >= 2.5.0 (optional)\n - **NO** AWS account :)\n\nRelated Links\n=============\n\nddbmock\n-------\n\n- **Full documentation**: https://ddbmock.readthedocs.org/en/latest\n- **Report bugs**: https://bitbucket.org/Ludia/dynamodb-mock/issues\n- **Download**: http://pypi.python.org/pypi/ddbmock\n\nDynamodb-mapper\n---------------\n\n- **Full documentation**: http://dynamodb-mapper.readthedocs.org/en/latest/\n- **Report bugs**: https://bitbucket.org/Ludia/dynamodb-mapper/issues\n- **Download**: http://pypi.python.org/pypi/dynamodb-mapper\n\nBoto\n----\n\n- **Full documentation**: http://docs.pythonboto.org/en/latest/index.html\n- **Report bugs**: https://github.com/boto/boto/issues\n- **Download**: http://pypi.python.org/pypi/boto", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/Ludia/dynamodb-mock", "keywords": "pyramid dynamodb mock planification", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "ddbmock", "package_url": "https://pypi.org/project/ddbmock/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ddbmock/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/Ludia/dynamodb-mock" }, "release_url": "https://pypi.org/project/ddbmock/1.0.3/", "requires_dist": null, "requires_python": null, "summary": "Amazon DynamoDB mock implementation", "version": "1.0.3" }, "last_serial": 788854, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "1f26abc5b9be985533df3a6148db79e8", "sha256": "e606bfb9588008bc4ff58a8069c5ba0a5de4eb43d067b6c882a4cb508f97a6a0" }, "downloads": -1, "filename": "ddbmock-0.3.0.tar.gz", "has_sig": false, "md5_digest": "1f26abc5b9be985533df3a6148db79e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33933, "upload_time": "2012-10-04T22:27:55", "url": "https://files.pythonhosted.org/packages/6f/ea/229a5d7897bb0ede1900e0c93f6753a25b33f59bfaf58969d4c2b9839063/ddbmock-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b09b2da129d32163c6a86eabb36b866d", "sha256": "3bcc4f990f2e92f111e1f143772bac2578db9590b45ccfe57b3f2bd2de955806" }, "downloads": -1, "filename": "ddbmock-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b09b2da129d32163c6a86eabb36b866d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42128, "upload_time": "2012-10-11T22:31:14", "url": "https://files.pythonhosted.org/packages/a1/0e/d0ef6e3444c33c8afe7205766d313e711fe6435c0202ba65f8e35961a4e2/ddbmock-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "d2aaaf8123ee7f9b82573f7818cf3920", "sha256": "1b5cf8ab2a8a570ac30328aef825590e4d1aef8300332bb0fe2647a18046b4d1" }, "downloads": -1, "filename": "ddbmock-0.3.2.tar.gz", "has_sig": false, "md5_digest": "d2aaaf8123ee7f9b82573f7818cf3920", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43431, "upload_time": "2012-10-15T14:36:14", "url": "https://files.pythonhosted.org/packages/97/21/7768d445ffab6b079116e3d638116849f23f165a8927181a6f1d2a0a444c/ddbmock-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "9858cff0b5718ba266c81015262d3cd7", "sha256": "8b8e45ea99e7535b9b9492f69fbcccd8424ef2521eb288ae9e1f0ef7ca2b1d07" }, "downloads": -1, "filename": "ddbmock-0.4.0.tar.gz", "has_sig": false, "md5_digest": "9858cff0b5718ba266c81015262d3cd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 98408, "upload_time": "2012-11-06T15:02:24", "url": "https://files.pythonhosted.org/packages/5f/70/727ad1a84ef76336bce1d140a597dea6502bfb9c11244d6467f92509d134/ddbmock-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "9712d92a4dbb3227e757875f82d3fe50", "sha256": "20bd0827f66b4825bbac1a014e48c6ee939ecf87d7e6c59da351fb7b4d8e3f26" }, "downloads": -1, "filename": "ddbmock-0.4.1.tar.gz", "has_sig": false, "md5_digest": "9712d92a4dbb3227e757875f82d3fe50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77197, "upload_time": "2012-11-16T16:43:13", "url": "https://files.pythonhosted.org/packages/b6/24/23569f1fc3822dc8208d72e6e4b75c0591d21ae0b73922646c7d86e1c5db/ddbmock-0.4.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "7690beb4a7a3bd2a11e131400a2cfdee", "sha256": "df1a8fd9d92c2bfd7debc74dcb9e00197f43c433f2592a815c06d87234564f25" }, "downloads": -1, "filename": "ddbmock-1.0.0.tar.gz", "has_sig": false, "md5_digest": "7690beb4a7a3bd2a11e131400a2cfdee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81442, "upload_time": "2012-11-22T20:49:56", "url": "https://files.pythonhosted.org/packages/cc/55/01f63b87c84fc77b631e1f04d57d10468fba7ddcbe750ad95913a74df791/ddbmock-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "804d598472dd52dd983fe01133080907", "sha256": "f5f823c85ce8d31a7d76fe289eda9bc05775ca0cf2076904f81addcf84ad577c" }, "downloads": -1, "filename": "ddbmock-1.0.1.tar.gz", "has_sig": false, "md5_digest": "804d598472dd52dd983fe01133080907", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82827, "upload_time": "2012-12-23T20:04:23", "url": "https://files.pythonhosted.org/packages/4b/8d/f6097e8f94912fde271779020ce5333be2f156a1f3e71f8366e5816e6d2d/ddbmock-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "9417f1ab995ffe7b0e8f297f3eca6d1d", "sha256": "efdaf2fb165381456ee6abd1f7f60d838c8ec1b95a01dae872754df6b9d15ac5" }, "downloads": -1, "filename": "ddbmock-1.0.2.tar.gz", "has_sig": false, "md5_digest": "9417f1ab995ffe7b0e8f297f3eca6d1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80216, "upload_time": "2013-05-10T20:10:10", "url": "https://files.pythonhosted.org/packages/e3/2a/a1e6e7a792406d5e6579f9ec9fcdde5785d33d07e5df7625a93d1f946bb4/ddbmock-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "6d47515701ca5801fad2da98e473e882", "sha256": "b2c89c5e220bd50e8469c602c463a3beb74917cc5f5a0c7aa7609429781747c3" }, "downloads": -1, "filename": "ddbmock-1.0.3.tar.gz", "has_sig": false, "md5_digest": "6d47515701ca5801fad2da98e473e882", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80143, "upload_time": "2013-06-05T18:37:30", "url": "https://files.pythonhosted.org/packages/ee/f8/5b44968249b534cbe8d61558491b28b76358e9fcc666b361cc25ab76ce8e/ddbmock-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6d47515701ca5801fad2da98e473e882", "sha256": "b2c89c5e220bd50e8469c602c463a3beb74917cc5f5a0c7aa7609429781747c3" }, "downloads": -1, "filename": "ddbmock-1.0.3.tar.gz", "has_sig": false, "md5_digest": "6d47515701ca5801fad2da98e473e882", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80143, "upload_time": "2013-06-05T18:37:30", "url": "https://files.pythonhosted.org/packages/ee/f8/5b44968249b534cbe8d61558491b28b76358e9fcc666b361cc25ab76ce8e/ddbmock-1.0.3.tar.gz" } ] }