{ "info": { "author": "gocept ", "author_email": "mail@gocept.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved", "License :: OSI Approved :: Zope Public License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Database", "Topic :: Software Development :: Testing", "Topic :: Utilities" ], "description": "=============\ngocept.testdb\n=============\n\nCreates and drops temporary databases for testing purposes.\n\nThis package has been tested with Python 2.6, 2.7, 3.3 up to 3.5.\n\n\nCopyright (c) 2008-2015 gocept gmbh & co. kg and contributors.\n\nAll Rights Reserved.\n\nThis software is subject to the provisions of the Zope Public License,\nVersion 2.1 (ZPL). A copy of the ZPL should accompany this distribution.\nTHIS SOFTWARE IS PROVIDED \"AS IS\" AND ANY AND ALL EXPRESS OR IMPLIED\nWARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS\nFOR A PARTICULAR PURPOSE.\n\n\n.. contents:: :depth: 1\n\n``gocept.testdb`` provides small helper classes that create and drop temporary\ndatabases.\n\n>>> import gocept.testdb\n>>> import os.path\n>>> import shutil\n>>> import sqlalchemy\n>>> import tempfile\n>>> sql_dir = tempfile.mkdtemp()\n>>> schema = os.path.join(sql_dir, 'sample.sql')\n>>> with open(schema, 'w') as f:\n... _ = f.write('CREATE TABLE foo (dummy int);')\n\nWe'll use a custom prefix specific to the current process whenever we create\nfixed-name databases during this test, in order to allow concurrent test runs\non the same machine (such as a CI server):\n\n>>> import os\n>>> pid_prefix = 'gocept.testdb.tests-PID%s-' % os.getpid()\n>>> db_template = pid_prefix + 'templatetest'\n\nMySQL\n=====\n\n``gocept.testdb`` expects the usage of PyMySQL_ as database driver.\n\n.. _PyMySQL : https://pypi.python.org/pypi/PyMySQL\n\nFirst, instantiate a test database object and have it create the database on\nthe server. You can specify the name or the prefix of the database:\n\n>>> gocept.testdb.MySQL(schema_path=schema, db_name='mytestdb').dsn\n'mysql+pymysql://.../mytestdb'\n>>> db = gocept.testdb.MySQL(schema_path=schema, prefix='my-tests')\n>>> db.dsn\n'mysql+pymysql://.../my-tests-...'\n>>> db.create()\n\nThis will use the appropriate command-line tools to create a database with a\nrandom name.\n\nYou can use the following environment variables to customize the DSN:\n\n``MYSQL_HOST``\n hostname, defaults to ``localhost``\n``MYSQL_USER``\n username, defaults to ``None`` which means to use the name of the\n user logged into the operating system.\n``MYSQL_PASS``\n password, defaults to ``None`` which means no password required.\n``MYSQL_COMMAND_POSTFIX``\n attach this postfix to MySQL commands, defaults to an empty string. You\n need this variable if your MySQL commands are named like ``mysql5`` instead\n of ``mysql``.\n\nThe dbapi DSN can then be used to connect to the database:\n\n>>> engine = sqlalchemy.create_engine(db.dsn)\n\nThe database is marked as a testing database by creating a table called\n``tmp_functest`` in it:\n\n>>> conn = engine.connect()\n>>> ignore = conn.execute('SELECT * from tmp_functest')\n\nThe database object also offers convenience methods for determining the status\nof the database:\n\n>>> db.exists\nTrue\n>>> db.is_testing\nTrue\n\nIf you passed a ``schema_path`` to the constructor, the SQL code in this file\nis executed, e. g. to set up tables:\n\n>>> ignore = conn.execute('SELECT * from foo')\n\nWhen done, simply drop the database:\n\n>>> conn.close()\n>>> try:\n... db.drop()\n... except RuntimeError:\n... pass # Jenkins fails to drop databases in Python 3, *sigh*\n\n\nPostgreSQL\n==========\n\nGeneral\n-------\n\nThe same procedure also works for PostgreSQL.\nYou can use the following environment variables to customize the DSN:\n\n``POSTGRES_HOST``\n hostname, defaults to ``localhost``\n``POSTGRES_USER``\n username, defaults to ``None`` which means to use the name of the\n user logged into the operating system.\n``POSTGRES_PASS``\n password, defaults to ``None`` which means no password required.\n *Note:* Instead of using ``POSTGRES_PASS``, use the ``~/.pgpass`` mechanism\n `provided by postgres`_ itself.\n\n.. _`provided by postgres`: http://wiki.postgresql.org/wiki/Pgpass\n\n>>> db = gocept.testdb.PostgreSQL(schema_path=schema)\n>>> db.create()\n>>> engine = sqlalchemy.create_engine(db.dsn)\n>>> conn = engine.connect()\n>>> ignore = conn.execute('SELECT * from tmp_functest')\n>>> ignore = conn.execute('SELECT * from foo')\n>>> conn.invalidate()\n>>> db.drop()\n\nEncoding\n--------\n\nFor PostgreSQL an optional encoding, database name and database name prefix\nparameters can be specified in the constructor. They are used when creating the\ndatabase.\n\n>>> gocept.testdb.PostgreSQL(encoding='UTF8', db_name='mytestdb').dsn\n'postgresql://...localhost/mytestdb'\n>>> gocept.testdb.PostgreSQL(prefix='my-tests').dsn\n'postgresql://...localhost/my-tests-...'\n\n\nTemplates\n---------\n\nFor PostgreSQL, an optional template parameter can be passed to the\nconstructor. It specifies the name of a template database which is used for the\ncreation of the test database. If the template database does not exist, it is\ncreated with the specified schema.\n\nThe first time you create the database with the ``db_template`` argument, the\ntemplate database is created (if it does not exist already) along with the\nrequested database:\n\n>>> db = gocept.testdb.PostgreSQL(schema_path=schema, db_template=db_template)\n\nNow with the template available, the schema is not used any more to create the\ndatabase (it's copied from the template database).\n\nWhen creating the database, we can, however, force the template database to be\ncreated afresh from the schema. Doing so now will leave us with both a test\ndatabase and a template database according to the modified schema:\n\n>>> db = gocept.testdb.PostgreSQL(\n... schema_path=schema, db_template=db_template, force_template=True)\n\nThe template database (and with it, the test database) is also created anew if\nthe schema file is newer than the existing template database.\n\nIf, however, the template database cannot be set up properly, it is removed\naltogether to avoid a broken template database interfering with subsequent\ntests.\n\n\nThe ``drop-all`` command-line script\n====================================\n\nThe Database classes' ``drop_all`` functionality is available independently\nthrough a command-line script named ``drop-all``. The script drops any test\ndatabases from both the PostgreSQL and MySQL servers that match the\ntest-database naming convention with any of the prefixes passed as\ncommand-line arguments. Usage::\n\n $ bin/drop-all \"\"\n\n\nTest clean up:\n\n>>> shutil.rmtree(sql_dir)\n\n\nDevelopment\n===========\n\nTo run the `buildout` of this package copy ``local.cfg.example`` to\n``local.cfg`` and edit it to match your needs:\n\n* ``MYSQL_COMMAND_POSTFIX`` is needed if your MySQL commands look like `mysql5`\n instead of `mysql`\n\n* MySQL has to open a port for the tests to connect to. Configure this in your\n `my.cnf`.\n\nRunning tests\n-------------\n\nInstall tox_ and run the tests calling ``tox``.\n\n.. _tox : https://pypi.python.org/pypi/tox\n\nSource code\n-----------\n\nThe source code is available at https://bitbucket.org/gocept/gocept.testdb\n\nBug reports\n-----------\n\nPlease report any bugs you find to https://bitbucket.org/gocept/gocept.testdb/issues\n\n\nChangelog\n=========\n\n4.2 (2019-08-09)\n----------------\n\n- Calculate a random db name that is random enought for parallel execution.\n\n\n4.1 (2019-08-09)\n----------------\n\n- Better support running tests in parallel with `xdist`.\n\n\n4.0 (2019-08-08)\n----------------\n\n- Drop support for Python 2.6 and Python 3.3.\n\n- Officially support Python 3.5 and 3.6.\n\n\n1.3 (2015-10-07)\n----------------\n\n- Drop support of Python 3.2.\n\n- Streamline documentation.\n\n\n1.3a1 (2015-09-24)\n------------------\n\n- Officially support Python 3.2 up to Python 3.4.\n\n- Switch PyMySQL driver to support Python 3 for MySQL.\n\n- Add environment variable ``MYSQL_COMMAND_POSTFIX`` to use MySQL commands like\n `mysql5` instead of `mysql`.\n\n\n\n1.2.1 (2013-09-03)\n------------------\n\n- Improve retry logic for dropping databases: ensure that db actually exists\n before trying to drop it (#12706).\n\n\n1.2 (2013-06-21)\n----------------\n\n- Provisional compatibility to Python 3 (no compatible mysql driver exists yet,\n though).\n- Fixed test code that made implicit assumptions about existing databases on\n the PostgreSQL server used or depended on timing conditions.\n\n\n1.1.1 (2013-03-19)\n------------------\n\n- Use `template0` when changing `LC_COLLATE` which was introduced in v1.1.\n\n\n1.1 (2013-03-19)\n----------------\n\n- Add possibility to set the `LC_COLLATE` when creating a database.\n\n\n1.0 (2013-03-12)\n----------------\n\n- Allow a postfix for mysql-commands.\n\n\n1.0b5 (2011-12-22)\n------------------\n\n- Use timestamp for randomizing database names to avoid collisions.\n\n\n1.0b4 (2011-09-23)\n------------------\n\n- `drop-all` entry point now also works, if PostgreSQL or MySQL is not\n installed/running.\n\n1.0b3 (2011-05-13)\n------------------\n\n- Added `connect` convenience method.\n\n\n1.0b2 (2011-05-04)\n------------------\n\n- Added `is_testing` property as a convenience API.\n- Added `exists` property as a convenience API.\n\n\n1.0b1 (2011-04-12)\n------------------\n\n- Changed the protocol for using test databases: separated instantiating a\n Database instance from creating the database on the server. Creating\n Database instances is cheap now so they can be interacted with and passed\n around, deferring the expensive database creation on the server to the\n moment db.create() is called explicitly. This is also more symmetric with\n respect to db.drop().\n\n- Added functionality for dropping all databases matching the testdb naming\n scheme which may have been left on the server by earlier test runs.\n Optionally also drops the template db.\n\n- Added option to specify the name of the database for MySQL and PostgreSQL.\n\n- Added an option to specify a template database for PostgreSQL. If it does\n not exist, it is created from the specified schema. It is also possible to\n force the creation of the template even if it exists (dropping the current\n template database). Whenever the schema has changed since the template db\n was last created, the template db is updated automatically.\n\n\n0.4 (2010-12-15)\n----------------\n\n- Added option to specify the encoding for the PostgreSQL database.\n\n- Updated PostgreSQL protocol from ``postgres:`` to ``postgresql:`` as the\n former one is deprecated in SQLAlchemy 0.6, thus requiring atleast version\n 0.5.6 of SQLAlchemy.\n\n- Added documentation how to develop this package further.\n\n- Added doumentation about usage of `Database prefix`.\n\n\n0.3 (2010-10-15)\n----------------\n\n- PostgreSQL: Don't call createdb/dropdb with ``--quite`` but only psql.\n\n0.2 (2009-02-26)\n----------------\n\n- implemented authentication with password for mysql.\n Passwords for postgres are still not supported, though.\n\n0.1 (2008-09-26)\n----------------\n\n- first release", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/gocept/gocept.testdb", "keywords": "", "license": "ZPL 2.1", "maintainer": "", "maintainer_email": "", "name": "gocept.testdb", "package_url": "https://pypi.org/project/gocept.testdb/", "platform": "", "project_url": "https://pypi.org/project/gocept.testdb/", "project_urls": { "Homepage": "https://bitbucket.org/gocept/gocept.testdb" }, "release_url": "https://pypi.org/project/gocept.testdb/4.2/", "requires_dist": null, "requires_python": "", "summary": "Creates and drops temporary databases for testing purposes.", "version": "4.2" }, "last_serial": 5654981, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "ae9644781e52596444e4557de41590e1", "sha256": "c958ea821451b6b1e9765d1de710b9893eb29a1f28e6228ed66e7972e0935744" }, "downloads": -1, "filename": "gocept.testdb-0.1.tar.gz", "has_sig": false, "md5_digest": "ae9644781e52596444e4557de41590e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4605, "upload_time": "2008-10-14T10:53:52", "url": "https://files.pythonhosted.org/packages/22/77/fc06e905b349e3aa684005b3829c581dbdd5cafde0019df050d83647b0a2/gocept.testdb-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "b11f4d12d2c2635422befbe73e287cee", "sha256": "9bb22d6f05fcba2da45b6b44f1c867e133e38b0b680417d9777da51d7b9be480" }, "downloads": -1, "filename": "gocept.testdb-0.2.tar.gz", "has_sig": false, "md5_digest": "b11f4d12d2c2635422befbe73e287cee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4826, "upload_time": "2009-02-26T11:34:59", "url": "https://files.pythonhosted.org/packages/77/50/48678962dd57e86ad333ba14d27711b0ad52640ace4ff737fd9bdd16321d/gocept.testdb-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "b2336e32164857cec78dc5c8abea85f2", "sha256": "f4ef524ee569c0d3ae4658294508974a260abf6483e9e5fdf3c0e1a479e1c9cb" }, "downloads": -1, "filename": "gocept.testdb-0.3.tar.gz", "has_sig": false, "md5_digest": "b2336e32164857cec78dc5c8abea85f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4829, "upload_time": "2010-10-15T11:40:21", "url": "https://files.pythonhosted.org/packages/22/af/9bb4a7f8bcb3ee661d3c3c878f985c95f327a8cb9c3e6fd48d525b923172/gocept.testdb-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "6e6eebc9f02ce7adb3b8de4e3bebba6a", "sha256": "db7233e29f1f94aa2ca2bdb08912b6ff7abf72e69915dc81ba2b26c2f710ecfd" }, "downloads": -1, "filename": "gocept.testdb-0.4.tar.gz", "has_sig": false, "md5_digest": "6e6eebc9f02ce7adb3b8de4e3bebba6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5722, "upload_time": "2010-12-15T10:01:34", "url": "https://files.pythonhosted.org/packages/dc/50/c0d77b436868d46201fc279d95f285292a58e810bf6d5613ecb91fb8cf8c/gocept.testdb-0.4.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "2e1c66386765c2ce590da38f14236c43", "sha256": "8843946fe532e1609f88f25812f2eebe4e91db61b6184d59c5993887a7e3da04" }, "downloads": -1, "filename": "gocept.testdb-1.0.tar.gz", "has_sig": true, "md5_digest": "2e1c66386765c2ce590da38f14236c43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18378, "upload_time": "2013-03-12T12:11:05", "url": "https://files.pythonhosted.org/packages/4c/5b/ab3288acf431c090132ff31e0fe609fd4b395eb5c7d75e9e8648f588b39e/gocept.testdb-1.0.tar.gz" } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "37afb0f3bbb3fa2f0cb374fdf5d70f36", "sha256": "effb56fa889c4c5266fa4086c8a2ea577901dc11ace1f97bf75fa5db6414ba77" }, "downloads": -1, "filename": "gocept.testdb-1.0b1.tar.gz", "has_sig": true, "md5_digest": "37afb0f3bbb3fa2f0cb374fdf5d70f36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15117, "upload_time": "2011-04-13T08:00:22", "url": "https://files.pythonhosted.org/packages/b0/37/efb4ab8f147377c99de90c8c0f1b825c192f0c5a0c0190fa68f4dc936128/gocept.testdb-1.0b1.tar.gz" } ], "1.0b2": [ { "comment_text": "", "digests": { "md5": "45014fd530d1e449972ab1a755cdc904", "sha256": "957a675ab047276d4d8d50ec51c860f3e3ea054483bbfd07bf3febaff5ab95db" }, "downloads": -1, "filename": "gocept.testdb-1.0b2.tar.gz", "has_sig": false, "md5_digest": "45014fd530d1e449972ab1a755cdc904", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12007, "upload_time": "2011-05-04T14:03:50", "url": "https://files.pythonhosted.org/packages/15/d8/57ed74d78d1b87bb66585aedcc936b49762c66ddd852c7ebb8c68ae13eed/gocept.testdb-1.0b2.tar.gz" } ], "1.0b3": [ { "comment_text": "", "digests": { "md5": "ca7d4f9543f3353974771c36d7e0edea", "sha256": "1ce1fa67315db2ed9f265aea0fd7a2f747476174105d04c84da78890950e1f2f" }, "downloads": -1, "filename": "gocept.testdb-1.0b3.tar.gz", "has_sig": false, "md5_digest": "ca7d4f9543f3353974771c36d7e0edea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12065, "upload_time": "2011-05-13T14:54:51", "url": "https://files.pythonhosted.org/packages/75/21/15a21b49b1654bdffd833fc0e200f331ff6cc446197b1a0818954f36de55/gocept.testdb-1.0b3.tar.gz" } ], "1.0b4": [ { "comment_text": "", "digests": { "md5": "8ae388f55b39eeb41474ebb2a20299c5", "sha256": "601f9ae5bbc981861bac27cabdebfb11dc3f3c7dfa453c54030f6a6a892e1fe5" }, "downloads": -1, "filename": "gocept.testdb-1.0b4.tar.gz", "has_sig": false, "md5_digest": "8ae388f55b39eeb41474ebb2a20299c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15505, "upload_time": "2011-09-23T15:26:47", "url": "https://files.pythonhosted.org/packages/9e/11/b42c7fa8c8b83bd148680f8e560c53faf5a2e310bf63c10e9832250e667b/gocept.testdb-1.0b4.tar.gz" } ], "1.0b5": [ { "comment_text": "", "digests": { "md5": "a83b51adfcc3259eace6a2f6543086bb", "sha256": "d8a1c8b7e9fd78e1b0086e9c3912d0f378702e277e932d39fc4a463b970c75a1" }, "downloads": -1, "filename": "gocept.testdb-1.0b5.tar.gz", "has_sig": false, "md5_digest": "a83b51adfcc3259eace6a2f6543086bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15144, "upload_time": "2011-12-22T14:25:15", "url": "https://files.pythonhosted.org/packages/20/1a/c881f9eda7d6e5695f903831050c159fba2620c89409d62a86a81d649d99/gocept.testdb-1.0b5.tar.gz" } ], "1.0b6": [ { "comment_text": "", "digests": { "md5": "9f5af9cef60035cbaffef26a14c2d08a", "sha256": "b0bbe4140f449c08be55ed8ad9c64a079f84b1fbe65332b3765153c9211b661c" }, "downloads": -1, "filename": "gocept.testdb-1.0b6.zip", "has_sig": false, "md5_digest": "9f5af9cef60035cbaffef26a14c2d08a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28251, "upload_time": "2013-03-11T14:51:06", "url": "https://files.pythonhosted.org/packages/80/24/075dd5d7c1b5efc445818d8a53b6ebea6a20af8e4d924c74771b01ca4b5f/gocept.testdb-1.0b6.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "b1d8c7a7bb4be91e42d10dc36f7e1fe7", "sha256": "3ce45cff822e6f207427741fac4b2b5b57b80e3bc255d64d930b9dcae3f13d64" }, "downloads": -1, "filename": "gocept.testdb-1.1.zip", "has_sig": false, "md5_digest": "b1d8c7a7bb4be91e42d10dc36f7e1fe7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29070, "upload_time": "2013-03-19T15:15:59", "url": "https://files.pythonhosted.org/packages/40/bb/2d85b378294ef5fe88727f2849147f21ccc88109490f216223252a5590da/gocept.testdb-1.1.zip" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "9b8fda7fb2da94f9c6ed28703989a686", "sha256": "eba960a10c4aebb33b98d79777a466d775def8c9f712c5bfc67514001d07abd6" }, "downloads": -1, "filename": "gocept.testdb-1.1.1.zip", "has_sig": false, "md5_digest": "9b8fda7fb2da94f9c6ed28703989a686", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29328, "upload_time": "2013-03-19T15:28:21", "url": "https://files.pythonhosted.org/packages/13/30/c5d203af7ad3610bb9e228564e301381d1b22966897168eed1469140597d/gocept.testdb-1.1.1.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "919efdf481ef5edfe4e629709b56af72", "sha256": "99985c2c25597a5dfd5777fea8136083f3e812e055ddb13fd0ef7ccdc08dc939" }, "downloads": -1, "filename": "gocept.testdb-1.2.zip", "has_sig": false, "md5_digest": "919efdf481ef5edfe4e629709b56af72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29203, "upload_time": "2013-06-21T11:36:31", "url": "https://files.pythonhosted.org/packages/75/f2/8f14b6129e0f84e275c2971a73ec6d32799ece10aeb584c33368e463efb9/gocept.testdb-1.2.zip" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "451ae1807182f3f875896980e0ae6bef", "sha256": "adb3d3ac62c512c190cac2cb3125d94e6427a8ddf8074e8e0bf402be2cd712de" }, "downloads": -1, "filename": "gocept.testdb-1.2.1.zip", "has_sig": false, "md5_digest": "451ae1807182f3f875896980e0ae6bef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29563, "upload_time": "2013-09-03T06:22:29", "url": "https://files.pythonhosted.org/packages/f9/cc/cc3274f84949baeaaf64f49a7c02ee91042097e843fedc0a1dd788600a24/gocept.testdb-1.2.1.zip" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "832551d478be3dcf27b36afe6d3df7f9", "sha256": "a82d6b2955ff17f854f206d6b04a9adab5b150e96f31b52fed82252577f751d7" }, "downloads": -1, "filename": "gocept.testdb-1.3.tar.gz", "has_sig": false, "md5_digest": "832551d478be3dcf27b36afe6d3df7f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22534, "upload_time": "2015-10-07T11:35:37", "url": "https://files.pythonhosted.org/packages/02/ab/423265b87e50718b7c4d36c15931aef0e2d628f8ea5924a78fe2b39c412b/gocept.testdb-1.3.tar.gz" } ], "1.3a1": [ { "comment_text": "", "digests": { "md5": "4363bd2ac59da82f935b9b7a95de26c4", "sha256": "a1ba0afc9c67eb6dd566e8c288abc81d1c5e3e191d53bf496e80170b6804e4e0" }, "downloads": -1, "filename": "gocept.testdb-1.3a1.tar.gz", "has_sig": false, "md5_digest": "4363bd2ac59da82f935b9b7a95de26c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21510, "upload_time": "2015-09-24T12:51:13", "url": "https://files.pythonhosted.org/packages/86/a1/4b9d2743cd40c4f2eff39971abf0801891897f470bbc508ed82af8b64583/gocept.testdb-1.3a1.tar.gz" } ], "4.1": [ { "comment_text": "", "digests": { "md5": "25153edb65984831063a757b0829252c", "sha256": "1c52cafc712fa88378837e995b5ab05a2a73ab07b0dd8a75d0ad151fd04c60d8" }, "downloads": -1, "filename": "gocept.testdb-4.1.tar.gz", "has_sig": false, "md5_digest": "25153edb65984831063a757b0829252c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21600, "upload_time": "2019-08-09T10:27:05", "url": "https://files.pythonhosted.org/packages/f2/89/5c134482bdb92ba63f2fe8e2181fd96f1f9bc7083bf3940f5647f4250a88/gocept.testdb-4.1.tar.gz" } ], "4.2": [ { "comment_text": "", "digests": { "md5": "7ac95dcf136fce6f9d4555756b881700", "sha256": "1bcd4f36128de7451e6d06aa467e38e80dfcbb8a38ed5f3a2264adc55ef4a766" }, "downloads": -1, "filename": "gocept.testdb-4.2.tar.gz", "has_sig": false, "md5_digest": "7ac95dcf136fce6f9d4555756b881700", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22062, "upload_time": "2019-08-09T11:02:53", "url": "https://files.pythonhosted.org/packages/03/3c/33bf892ad85885c5a9fdb2fa761038a253c8543242e3104df9b7ae3fb891/gocept.testdb-4.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7ac95dcf136fce6f9d4555756b881700", "sha256": "1bcd4f36128de7451e6d06aa467e38e80dfcbb8a38ed5f3a2264adc55ef4a766" }, "downloads": -1, "filename": "gocept.testdb-4.2.tar.gz", "has_sig": false, "md5_digest": "7ac95dcf136fce6f9d4555756b881700", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22062, "upload_time": "2019-08-09T11:02:53", "url": "https://files.pythonhosted.org/packages/03/3c/33bf892ad85885c5a9fdb2fa761038a253c8543242e3104df9b7ae3fb891/gocept.testdb-4.2.tar.gz" } ] }