{ "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 :: 3.7", "Programming Language :: Python :: Implementation", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Testing" ], "description": "==============\ngocept.testing\n==============\n\nThis package collects various helpers for writing tests.\n\n.. contents:: :depth: 1\n\n\nassertEllipsis\n==============\n\nAn assertion which is very helpful when using Testbrowser with\nunittest.TestCase (instead of doctests).\n\nSome examples::\n\n class MyTest(unittest.TestCase, gocept.testing.assertion.Ellipsis):\n # [...]\n\n\n self.assertEllipsis('...bar...', 'foo bar qux')\n # -> nothing happens\n\n self.assertEllipsis('foo', 'bar')\n # -> AssertionError: Differences (ndiff with -expected +actual):\n - foo\n + bar\n\n self.assertNotEllipsis('foo', 'foo')\n # -> AssertionError: \"Value unexpectedly matches expression 'foo'.\"\n\nTo use, inherit from ``gocept.testing.assertion.Ellipsis`` in addition to\n``unittest.TestCase``.\n\n\nassertStartsWith, assertEndsWith\n================================\n\n::\n\n class MyTest(unittest.TestCase, gocept.testing.assertion.String):\n\n def test_something(self):\n self.assertStartsWith('foo', 'foobar') # --> pass\n self.assertEndsWith('bar', 'foobar') # --> pass\n self.assertStartsWith('qux', 'foobar') # --> fail\n self.assertEndsWith('qux', 'foobar') # --> fail\n\n\nassertNothingRaised\n===================\n\nThe opposite of assertRaises(), this is an assertion that makes some tests more\nreadable. As assertRaises(), it can be used as as context manager, too::\n\n class MyTest(unittest.TestCase, gocept.testing.assertion.Exceptions):\n # [...]\n\n self.assertNothingRaised(do_something, 1, 2, 3)\n\n with self.assertNothingRaised():\n do_something(1, 2, 3)\n\n\nmock patch context\n==================\n\n``gocept.testing.mock.Patches`` collects `mock`_ patches that are valid for the\nwhole TestCase, and resets them all in one go in tearDown (this is pending\nincluion upstream as ``mock.patcher()``, see `issue 30`_)::\n\n class MyTest(unittest.TestCase):\n\n def setUp(self):\n self.patches = gocept.testing.mock.Patches()\n\n def tearDown(self):\n self.patches.reset()\n\n def test_something(self):\n compile = self.patches.add('re.compile')\n\nIt offers three methods:\n\n:add: wraps ``mock.patch()``\n:add_object: wraps ``mock.patch.object``\n:add_dict: wraps ``mock.patch.dict``\n\nNote that ``gocept.testing`` does not declare a dependency on ``mock`` to be as\nlightweight as possible, so clients need to do that themselves.\n\nIf you want to save typing, you can mix ``gocept.testing.mock.PatchHelper``\ninto your TestCase, it defines a setUp method that instatiates ``Patches`` and\na tearDown that calls ``reset()`` on it.\n\n\n.. _`mock`: http://www.voidspace.org.uk/python/mock/\n.. _`issue 30`: http://code.google.com/p/mock/issues/detail?id=30\n\n\nassertCalledWith\n================\n\nThis is syntactic sugar around ``mock.assert_called_with``, so you can write::\n\n class MyTest(unittest.TestCase, gocept.testing.mock.Assertions):\n\n def test_something(self):\n dummy = mock.Mock()\n dummy(True)\n self.assertCalledWith(dummy, True)\n\ninstead of::\n\n dummy.assert_called_with(True)\n\n\nMocking properties\n==================\n\n``gocept.testing.mock.Property`` is syntactic sugar directly lifted from the\n`mock documentation`_ that allows you to patch properties like this::\n\n class Dummy(object):\n\n @property\n def foo(self):\n return False\n\n\n with mock.patch('Dummy.foo', gocept.testing.mock.Property()) as foo:\n foo.return_value = 'something else'\n\n\n.. _`mock documentation`: http://www.voidspace.org.uk/python/mock/examples.html\n\n\nAttribute patch context\n=======================\n\nThis has nothing to do with mocks, it's a convenience helper for setting and\nautomatically resetting attributes of objects::\n\n class MyTest(unittest.TestCase):\n\n def setUp(self):\n self.patches = gocept.testing.patch.Patches()\n self.subject = MyClass()\n\n def tearDown(self):\n self.patches.reset()\n\n def test_something(self):\n self.assertEqual('one', self.subject.foo)\n self.patches.set(self.subject, 'foo', 'two')\n self.assertEqual('two', self.subject.foo)\n\n\nMethod call patch context\n=========================\n\nThis allows to call a method and reset it later on automatically. At the\nmoment, only methods that take a single parameter are supported, by passing in\nboth the old value (to which it should be reset) and the new value::\n\n class MyTest(unittest.TestCase):\n\n def setUp(self):\n self.patches = gocept.testing.patch.Patches()\n\n def tearDown(self):\n self.patches.reset()\n\n def test_something(self):\n self.patches.call(\n zope.component.hooks, 'setSite',\n zope.component.hooks.getSite(), new_site)\n\n\nDict patching context manager\n=============================\n\n``gocept.testing.patch.Dict`` is a context manager allowing to change values\nin a dict. It restores the original dict at exit. E. g. it can be used to\ntemporarily change values in ``os.environ``::\n\n >>> with gocept.testing.patch.Dict(os.environ, foo='bar', qwe='asdf'):\n print os.environ.get('foo')\n bar\n >>> print os.environ.get('foo')\n None\n\n\nTemporary directory\n===================\n\n``gocept.testing.fixture.TempDir`` encapsulates the common pattern to create a\ntemporary directory and delete it after the test has run. The name of the\ndirectory is avaliable as ``self.tmpdir``. Note that since\n``unittest.TestCase`` does not call `super`, you need to mix in ``TempDir``\nfirst::\n\n class MyTest(gocept.testing.fixture.TempDir, unittest.TestCase):\n\n def test_something(self):\n self.assertTrue(os.path.isdir(self.tmpdir))\n\n\nComparing mtimes\n================\n\n``gocept.testing.mtime.Newer`` checks that generated files are at least as new\nas their source counterparts (similar like ``make`` works)::\n\n class MyTest(gocept.testing.mtime.Newer, unittest.TestCase):\n\n source_ext = '.js'\n target_ext = '.min.js'\n message = 'run jsmin to correct this'\n\n def test_minified_js_files_are_younger_than_non_minified_ones(self):\n self.check_files(pkg_resources.resource_filename(\n 'my.package', 'resources/js'))\n\n\nDevelopment\n===========\n\nThe mercurial repository of the source code as well as the issue tracker are\navailable at .\n\n\nChangelog\n=========\n\n2.0.post1 (2018-11-22)\n----------------------\n\n- Fix PyPI page rendering.\n\n\n2.0 (2018-11-22)\n----------------\n\n- Drop Python 2.6 an 3.3 support.\n\n- Add support for Python 3.6, 3.7, PyPy and PyPy3.\n\n- Choose explicit ``[mock]`` extra to use ``gocept.testing.mock`` on Python <\n 3.3.\n\n\n1.11 (2016-01-18)\n-----------------\n\n- Fix homepage URL.\n\n- Declare Python 3.4 and Python 3.5 support.\n\n- Drop Python 3.2 support.\n\n\n1.10.1 (2014-04-28)\n-------------------\n\n- Make ``assertNotEllipsis()`` compatible with `py.test`.\n\n- Declare Python 3.3 support.\n\n\n1.10 (2014-02-13)\n-----------------\n\n- Remove ``retry`` decorator, it is rather useless since it does not take\n setUp/tearDown into account.\n\n\n1.9 (2013-12-20)\n----------------\n\n- Add ``retry`` decorator that runs flaky tests several times and only fails\n when they fail each time.\n\n- Use py.test instead of zope.testrunner for this package's own tests.\n\n\n1.8 (2013-07-17)\n----------------\n\n- Python 3 compatibility.\n- Depend on setuptools rather than distribute now that the projects have\n merged.\n- Use current buildout and recipes for development.\n\n\n1.7 (2013-04-18)\n----------------\n\n- Fix Python-2.6 compatibility of our own test suite.\n- Introduce ``PatchHelper``.\n\n\n1.6.0 (2013-01-07)\n------------------\n\n- Add newer mtime check.\n\n\n1.5.2 (2012-09-14)\n------------------\n\n- ``.patch.Dict`` did not restore the keys if an exception occured while the\n `with` call.\n\n\n1.5.1 (2012-09-12)\n------------------\n\n- Fixed documentation and faulty 1.5 release.\n\n\n1.5 (2012-07-10)\n----------------\n\n- Add ``.patch.Dict``, a dict patching context manager.\n\n\n1.4 (2012-06-04)\n----------------\n\n- Add ``TempDir`` fixture.\n- Add ``assertStartsWith``, ``assertEndsWith``.\n\n\n1.3.2 (2012-05-09)\n------------------\n\n- Allow ``assertEllipsis`` to work with mixed unicode/bytes argument\n (assuming the bytes are UTF-8, as they are with zope.testbrowser).\n\n\n1.3.1 (2012-02-03)\n------------------\n\n- Display original traceback in ``assertNothingRaised``.\n\n\n1.3 (2011-12-16)\n----------------\n\n- Add patch helper for attributes and simple callables.\n\n\n1.2.1 (2011-12-09)\n------------------\n\n- Make Python-3 compatible (at least syntactically).\n\n\n1.2 (2011-12-09)\n----------------\n\n- Add Patches context for mock (upstream implementation pending,\n see )\n- Add ``assertCalledWith``.\n- Add ``mock.Property``.\n\n\n1.1 (2011-11-10)\n----------------\n\n- Add ``assertNothingRaised``.\n\n\n1.0 (2011-11-02)\n----------------\n\n- first release: ``assertEllipsis``", "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.testing", "keywords": "testing unittest assertions", "license": "ZPL", "maintainer": "", "maintainer_email": "", "name": "gocept.testing", "package_url": "https://pypi.org/project/gocept.testing/", "platform": "", "project_url": "https://pypi.org/project/gocept.testing/", "project_urls": { "Homepage": "https://bitbucket.org/gocept/gocept.testing" }, "release_url": "https://pypi.org/project/gocept.testing/2.0.post1/", "requires_dist": null, "requires_python": "", "summary": "A collection of test helpers, additional assertions, and the like.", "version": "2.0.post1" }, "last_serial": 4516989, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "4c0d1f085b4245f899eefe03d488ad77", "sha256": "790546a43b27f7c8d7e9a7b07cc524a58528b5df1d47a196048e515f93d4717d" }, "downloads": -1, "filename": "gocept.testing-1.0.tar.gz", "has_sig": false, "md5_digest": "4c0d1f085b4245f899eefe03d488ad77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4062, "upload_time": "2011-11-02T16:15:07", "url": "https://files.pythonhosted.org/packages/2a/eb/0b1f2815b062e8ee4d23a8191b67871f6da4f32b3154e6a5074fdb68f240/gocept.testing-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "f4f40fab6dac4fcb6d91bfd08e48e460", "sha256": "caef036a028efc8e81d4f12e9dde65de16eecc49c08a095201b4597cfb239845" }, "downloads": -1, "filename": "gocept.testing-1.1.tar.gz", "has_sig": false, "md5_digest": "f4f40fab6dac4fcb6d91bfd08e48e460", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4674, "upload_time": "2011-11-10T09:38:22", "url": "https://files.pythonhosted.org/packages/42/89/e93ee8fd27f9b0378aa20a35a97b27ffe78fb7834f861b95f25e2059d187/gocept.testing-1.1.tar.gz" } ], "1.10": [ { "comment_text": "", "digests": { "md5": "887ecd15ff7c9baf1259964050c9db57", "sha256": "e1b90028146c738ed3e6d53e4aa900389fcc20dc1f829ccc3a98ea9aaaac706f" }, "downloads": -1, "filename": "gocept.testing-1.10.zip", "has_sig": false, "md5_digest": "887ecd15ff7c9baf1259964050c9db57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22779, "upload_time": "2014-02-13T08:51:11", "url": "https://files.pythonhosted.org/packages/8c/f3/67a0ea2cbf76db5d4f19cd9098bb6ef14fa2ceb25880b816ded419e6e107/gocept.testing-1.10.zip" } ], "1.10.1": [ { "comment_text": "", "digests": { "md5": "d13ab633b6be40f251a7c11f69797a74", "sha256": "e3984fd4eeec9945b763cb32e96c698107c0cbf5f1df8c82cb06bc6c3d6e84e1" }, "downloads": -1, "filename": "gocept.testing-1.10.1.zip", "has_sig": false, "md5_digest": "d13ab633b6be40f251a7c11f69797a74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23093, "upload_time": "2014-04-28T09:27:49", "url": "https://files.pythonhosted.org/packages/4a/f2/b0a90f3be32448dc5d97b4942f6acff51a740a00d8f32f107844bcc5f16c/gocept.testing-1.10.1.zip" } ], "1.11": [ { "comment_text": "", "digests": { "md5": "eced65502fcc3c48e33de973681cb863", "sha256": "f9ee73af788800040fb2abc3397067f31090f5c6ee2011e0b703361bd527c17e" }, "downloads": -1, "filename": "gocept.testing-1.11.tar.gz", "has_sig": false, "md5_digest": "eced65502fcc3c48e33de973681cb863", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13767, "upload_time": "2016-01-18T16:30:26", "url": "https://files.pythonhosted.org/packages/e1/eb/a406e99d3af2f07d5495e5397ab9c216af1e5b17c1cfcc7df725dcb12ecc/gocept.testing-1.11.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "9b3462570fc6d108eefdf11e041b7e3c", "sha256": "dae2279fbcb693aed327101ff6a6bb7b01638a1ca6803f91a946a4671a427fac" }, "downloads": -1, "filename": "gocept.testing-1.2.tar.gz", "has_sig": false, "md5_digest": "9b3462570fc6d108eefdf11e041b7e3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6557, "upload_time": "2011-12-09T12:00:56", "url": "https://files.pythonhosted.org/packages/7a/a0/1992d7948ebf3f0a067ff0466f61e5f07e555d3a18969279b3974941a1e1/gocept.testing-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "31802f869093d09e40527bcc4fa7a6ee", "sha256": "09b877f591839a0c63459547c4d15be08613fcda7692e6d28e1a7bfeb3037996" }, "downloads": -1, "filename": "gocept.testing-1.2.1.tar.gz", "has_sig": false, "md5_digest": "31802f869093d09e40527bcc4fa7a6ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6719, "upload_time": "2011-12-09T18:21:32", "url": "https://files.pythonhosted.org/packages/ac/09/6b3eb5b098ce1cc9a19beeb19dd1b268d97bbf93b4ae638131fa5b7f14c6/gocept.testing-1.2.1.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "7a144e821a0a6ac56135c3f6e07f261a", "sha256": "876c638daea162668b181fc8262235763a8c68e244a27e5c220c42a801a1b271" }, "downloads": -1, "filename": "gocept.testing-1.3.tar.gz", "has_sig": false, "md5_digest": "7a144e821a0a6ac56135c3f6e07f261a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7625, "upload_time": "2011-12-16T11:58:37", "url": "https://files.pythonhosted.org/packages/53/88/e6afe110d4fa2f1f03d6c597dbbd44d91e136569a796a38222b37df31655/gocept.testing-1.3.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "7c75424ebf576c780b3c62f3a28fce10", "sha256": "dd288454b44603668e2993b22ef1371f396e5ccda6bef9d31cd62c81b3a26c93" }, "downloads": -1, "filename": "gocept.testing-1.3.1.tar.gz", "has_sig": false, "md5_digest": "7c75424ebf576c780b3c62f3a28fce10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9224, "upload_time": "2012-02-03T16:07:03", "url": "https://files.pythonhosted.org/packages/cc/6c/87ace7f53f4f36f03b6940f55cde92272c4beb5b972faa272290782220be/gocept.testing-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "c1845177755fa1b6a11e009bd0d1f96a", "sha256": "1fea8eac3e9d649afc68257415ab11f69bc146e8be981c27b4cefa633e8e5a27" }, "downloads": -1, "filename": "gocept.testing-1.3.2.zip", "has_sig": false, "md5_digest": "c1845177755fa1b6a11e009bd0d1f96a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22707, "upload_time": "2012-05-09T15:03:57", "url": "https://files.pythonhosted.org/packages/b0/87/2a3c986861cd02029d255d2ebbe5ef79fb7aba724aa4d126f3c36713822e/gocept.testing-1.3.2.zip" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "11ab870f9910f801abde83de9d1a3fdb", "sha256": "0b3282f71def060409161d1347d154e1214e81bb4327d46da6802651256fd4f9" }, "downloads": -1, "filename": "gocept.testing-1.4.zip", "has_sig": false, "md5_digest": "11ab870f9910f801abde83de9d1a3fdb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24450, "upload_time": "2012-06-04T08:13:00", "url": "https://files.pythonhosted.org/packages/37/53/0252a03fb1a13afb3554b7be6892a855801bb203d1f4f63579cf77242d35/gocept.testing-1.4.zip" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "d53f9710d265d59f5d34f988e5c528a4", "sha256": "1cd5e999ea0b7b23263f89175b5b905ed1efcdc9ef23238ef8190e8ed231ee42" }, "downloads": -1, "filename": "gocept.testing-1.5.tar.gz", "has_sig": false, "md5_digest": "d53f9710d265d59f5d34f988e5c528a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15485, "upload_time": "2012-07-10T09:48:35", "url": "https://files.pythonhosted.org/packages/70/23/5e5aca7a35884c19f496a4da3546f45d4bf17297ead28754c039bc61c63f/gocept.testing-1.5.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "d34decf9cc00d4b0828a29cdcb762b6f", "sha256": "7eb5570ebfffecea14fba4a9f3b998f34c282a5975a232d2cd83ff9682238827" }, "downloads": -1, "filename": "gocept.testing-1.5.1.zip", "has_sig": false, "md5_digest": "d34decf9cc00d4b0828a29cdcb762b6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24446, "upload_time": "2012-09-12T11:44:24", "url": "https://files.pythonhosted.org/packages/58/66/bd9ecb6b4fd0889477ae465c8fd6958be657ade2ea71054ea7de1e5714f6/gocept.testing-1.5.1.zip" } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "45d2ecf58e18db442345cd12e1b011b3", "sha256": "3aa648ad15b5a6f97df181b5fefc93ff4cf619493ae90c5d1d452b751120bd67" }, "downloads": -1, "filename": "gocept.testing-1.5.2.zip", "has_sig": false, "md5_digest": "45d2ecf58e18db442345cd12e1b011b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24689, "upload_time": "2012-09-14T11:41:06", "url": "https://files.pythonhosted.org/packages/08/5a/d14e30e94f60ac5facf3dd34a3c86ccdfb7a3600f31708347d7824fb967b/gocept.testing-1.5.2.zip" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "d639272c031cfb87286d3401c25a2b88", "sha256": "85d91b523bd68fdee3e2a8d2b54d6e9faf98ad12a23ec8d5479a91141681795a" }, "downloads": -1, "filename": "gocept.testing-1.6.0.zip", "has_sig": false, "md5_digest": "d639272c031cfb87286d3401c25a2b88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26800, "upload_time": "2013-01-07T14:03:55", "url": "https://files.pythonhosted.org/packages/7f/23/2994e292fd6c71de81101ffc93c37c117a33d97e86aeba6abb75b8b249e1/gocept.testing-1.6.0.zip" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "a84d9c32d279de733080f8a5a0092444", "sha256": "5683ab1281414b85ec380d3d85f72c765b1bdf7e5c0d44fdbe3d56ff5d936009" }, "downloads": -1, "filename": "gocept.testing-1.7.zip", "has_sig": false, "md5_digest": "a84d9c32d279de733080f8a5a0092444", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27337, "upload_time": "2013-04-18T10:01:28", "url": "https://files.pythonhosted.org/packages/b4/9a/e3dc16de47d1c49c14bb27f0c90d0fb842ed790c9afd7df746324efa21a0/gocept.testing-1.7.zip" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "c91c25831f01a63fb2ba57cc3f2bb0aa", "sha256": "4477daef647a80dd347dc323bf9acba1fe9d8ea9d54b445a944f86f92edbb765" }, "downloads": -1, "filename": "gocept.testing-1.8.tar.gz", "has_sig": true, "md5_digest": "c91c25831f01a63fb2ba57cc3f2bb0aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15392, "upload_time": "2013-07-18T05:32:02", "url": "https://files.pythonhosted.org/packages/fa/40/c7180b3caf1f02d456f51df46ecb110aa0f4e0926b5983be14845446429b/gocept.testing-1.8.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "f863b52ceafb1610c8969521450efa3d", "sha256": "cd87b0c25a886f9b956f5c8ee33203dbc6ac93a8bd5d82c9de824e99896c6f91" }, "downloads": -1, "filename": "gocept.testing-1.9.zip", "has_sig": false, "md5_digest": "f863b52ceafb1610c8969521450efa3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24454, "upload_time": "2013-12-20T12:23:55", "url": "https://files.pythonhosted.org/packages/7a/ca/522741afa95d0971d3b4eb57c038f45cb1f63099282c31864681b3b7e30f/gocept.testing-1.9.zip" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "7932913c7c77b67b246ffcdeea9340f4", "sha256": "7c7de97e755e65ead61b7d76015db0168b1547a715ba5650f5f50a823fecca14" }, "downloads": -1, "filename": "gocept.testing-2.0.tar.gz", "has_sig": false, "md5_digest": "7932913c7c77b67b246ffcdeea9340f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12707, "upload_time": "2018-11-22T10:32:53", "url": "https://files.pythonhosted.org/packages/6f/84/715af8becf96d1f65591dcbdb8ccb4462422ffc769c1a83aa38b3d1b4ee1/gocept.testing-2.0.tar.gz" } ], "2.0.post1": [ { "comment_text": "", "digests": { "md5": "18d1ddde0e00e74ca53e50d18e6e8d2d", "sha256": "04a87aa6a5e1757d29454e8b58eb47f3c08b2a5707ec04cb5d91aaf4d30add0b" }, "downloads": -1, "filename": "gocept.testing-2.0.post1.tar.gz", "has_sig": false, "md5_digest": "18d1ddde0e00e74ca53e50d18e6e8d2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12803, "upload_time": "2018-11-22T12:53:13", "url": "https://files.pythonhosted.org/packages/82/4f/248e53349015ac942878ee57e9860a7d14ce96c11447b3e16144a2119f37/gocept.testing-2.0.post1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "18d1ddde0e00e74ca53e50d18e6e8d2d", "sha256": "04a87aa6a5e1757d29454e8b58eb47f3c08b2a5707ec04cb5d91aaf4d30add0b" }, "downloads": -1, "filename": "gocept.testing-2.0.post1.tar.gz", "has_sig": false, "md5_digest": "18d1ddde0e00e74ca53e50d18e6e8d2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12803, "upload_time": "2018-11-22T12:53:13", "url": "https://files.pythonhosted.org/packages/82/4f/248e53349015ac942878ee57e9860a7d14ce96c11447b3e16144a2119f37/gocept.testing-2.0.post1.tar.gz" } ] }