{ "info": { "author": "Daniel Nouri", "author_email": "daniel.nouri@gmail.com", "bugtrack_url": null, "classifiers": [ "Topic :: Software Development :: Testing" ], "description": "class Mocky(object):\n \"\"\"Mocky is a class that wants to help you with setting up mock\n objects for your tests. It helps you observe which functions get\n called (with which parameters) and which attributes are set.\n\n Unless given a name, a Mocky's name is 'root':\n\n >>> Mocky().name\n 'root'\n\n Let's start with a simple example that sets some variables so we\n get a feeling of how Mocky works. Note that attribute accesss\n will never result in AttributeError. Instead, an attribute access\n to a nonexistent member variable will yield another Mocky\n instance:\n\n >>> f = Mocky('f')\n >>> f\n f\n >>> unusual = f.unusual\n >>> unusual\n f.unusual\n >>> type(unusual) is Mocky\n True\n >>> unusual is f.unusual\n True\n >>> f.a.c.r = 'Fidelio'\n Set f.a.c.r to 'Fidelio'\n >>> f.a.c.r\n 'Fidelio'\n\n Note that when we set 'f.a.c.r' to 'Fidelio', Mocky printed out\n that the attribute was set. Suppose we have a function 'fun' that\n sets some fancy variable on a given object:\n\n >>> def fun(obj):\n ... if obj.please_process_me:\n ... obj.there_you = 'go'\n >>> myobj = Mocky('myobj')\n >>> fun(myobj)\n Set myobj.there_you to 'go'\n >>> myobj.please_process_me = False\n Set myobj.please_process_me to False\n >>> fun(myobj)\n\n Mocky also supports calling. Another function that does a bit\n more with our test object:\n\n >>> def starve(character):\n ... character.getStatus().hitpoints -= 1\n >>> starve(Mocky('Hugo')) # doctest: +ELLIPSIS\n Traceback (most recent call last):\n ...\n TypeError: unsupported operand type(s) for -=: 'Mocky' and 'int'\n >>> ezequiel = Mocky('ezequiel')\n >>> ezequiel.getStatus().hitpoints = 0\n Called ezequiel.getStatus()\n Set ezequiel.getStatus().hitpoints to 0\n >>> starve(ezequiel)\n Called ezequiel.getStatus()\n Set ezequiel.getStatus().hitpoints to -1\n\n For calls, Mocky will return the same value if the signature is\n the same:\n\n >>> secret = f.unusual(password='secret')\n Called f.unusual(password='secret')\n >>> secret is f.unusual(password='secret')\n Called f.unusual(password='secret')\n True\n >>> secret is f.unusual(password='unsafe')\n Called f.unusual(password='unsafe')\n False\n \"\"\"\n def __init__(self, name='root'):\n self.__dict__['name'] = name\n self.__dict__['_calls'] = {}\n\n def __call__(self, *args, **kwargs):\n argsstr = ', '.join([repr(arg) for arg in args])\n keys = sorted(kwargs.keys())\n kwargsstr = ', '.join(['%s=%r' % (key, kwargs[key]) for key in keys])\n if argsstr and kwargsstr:\n allargs = ', '.join([argsstr, kwargsstr])\n else:\n allargs = argsstr or kwargsstr\n\n print \"Called %s(%s)\" % (self.name, allargs)\n if allargs not in self._calls:\n self._calls[allargs] = Mocky('%s(%s)' % (self.name, allargs))\n return self._calls[allargs]\n\n def __repr__(self):\n return self.name\n\n def __getattr__(self, name):\n if name not in self.__dict__:\n self.__dict__[name] = Mocky('%s.%s' % (self.name, name))\n return self.__dict__[name]\n\n def __setattr__(self, name, value):\n print \"Set %s.%s to %r\" % (self.name, name, value)\n self.__dict__[name] = value", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://cheeseshop.python.org/pypi/Mocky", "keywords": "test doctest mock", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "Mocky", "package_url": "https://pypi.org/project/Mocky/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/Mocky/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://cheeseshop.python.org/pypi/Mocky" }, "release_url": "https://pypi.org/project/Mocky/0.2/", "requires_dist": null, "requires_python": null, "summary": "Mocky is a class that helps you create mock objects for use in doctests.", "version": "0.2" }, "last_serial": 784722, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "f5ffd01b13f104ba8550d65928269b95", "sha256": "756715d10e89f18b91af87550148181a6a1ac5d33441b9ee251b2c65bc9bfa55" }, "downloads": -1, "filename": "Mocky-0.1-py2.4.egg", "has_sig": false, "md5_digest": "f5ffd01b13f104ba8550d65928269b95", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 5785, "upload_time": "2007-03-17T17:28:46", "url": "https://files.pythonhosted.org/packages/43/26/35bb10fb1b564e4b8857f36fef62c7f0cf29cecc33fd8b86db3bc63e1c9e/Mocky-0.1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "9098b132c2819d8f48969f9e98c74158", "sha256": "da952c9d4dcf93e0951852e04f6d4b2ee5a654ff33031f74c106748a5d459e27" }, "downloads": -1, "filename": "Mocky-0.1.tar.gz", "has_sig": false, "md5_digest": "9098b132c2819d8f48969f9e98c74158", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2612, "upload_time": "2007-03-17T17:28:44", "url": "https://files.pythonhosted.org/packages/ac/db/aff78c0827a93069d294ccb0b9ad98f90e842906c7e49285df9448d612ea/Mocky-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "b2fd406b071f1503e53377e4bf856d88", "sha256": "4abc93ead308664b97a07717f81880dc9778083c47bc08affc3976e09cba99be" }, "downloads": -1, "filename": "Mocky-0.2-py2.4.egg", "has_sig": false, "md5_digest": "b2fd406b071f1503e53377e4bf856d88", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 5780, "upload_time": "2007-03-17T17:36:57", "url": "https://files.pythonhosted.org/packages/53/79/db82ab6f30934892a57653e869077fa5cbd03085b1a25d573b69931af1db/Mocky-0.2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "d52b59cd3fc7dbda7c801e92e97565b6", "sha256": "f664a603e546e9e29602415111892c0bddbb5a056a37337dd0a132a734e0c047" }, "downloads": -1, "filename": "Mocky-0.2.tar.gz", "has_sig": false, "md5_digest": "d52b59cd3fc7dbda7c801e92e97565b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2612, "upload_time": "2007-03-17T17:36:58", "url": "https://files.pythonhosted.org/packages/ed/16/a1d4e853b6900f4021b12fdc48372c31e5bfa19d59215f0c1d7f100600e7/Mocky-0.2.tar.gz" } ], "0.2dev-r229": [ { "comment_text": "", "digests": { "md5": "b6eb53e0e26213555c4e6fa660cd0afa", "sha256": "1594581222d2453b3f8bfaa645eed5a1389c4923fe3731b13c03607e82ae274d" }, "downloads": -1, "filename": "Mocky-0.2dev_r229-py2.4.egg", "has_sig": false, "md5_digest": "b6eb53e0e26213555c4e6fa660cd0afa", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 5794, "upload_time": "2007-03-17T17:36:07", "url": "https://files.pythonhosted.org/packages/9e/5f/d69b49be1985d8fb1aadeb9c8fbcca59659f92b635b5b23364cdd50b909a/Mocky-0.2dev_r229-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "d245c00a27c6afc1b3470cf05dfacbff", "sha256": "98f7e6a5152cb3d2ce33b6353e00165a60a0729769dc8dc81393ff0f7da3a484" }, "downloads": -1, "filename": "Mocky-0.2dev-r229.tar.gz", "has_sig": false, "md5_digest": "d245c00a27c6afc1b3470cf05dfacbff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2647, "upload_time": "2007-03-17T17:36:07", "url": "https://files.pythonhosted.org/packages/b5/82/5bcfb8bf508425ce6074646ce51480d536cb044b123cdc743d1f09b21e4d/Mocky-0.2dev-r229.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b2fd406b071f1503e53377e4bf856d88", "sha256": "4abc93ead308664b97a07717f81880dc9778083c47bc08affc3976e09cba99be" }, "downloads": -1, "filename": "Mocky-0.2-py2.4.egg", "has_sig": false, "md5_digest": "b2fd406b071f1503e53377e4bf856d88", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 5780, "upload_time": "2007-03-17T17:36:57", "url": "https://files.pythonhosted.org/packages/53/79/db82ab6f30934892a57653e869077fa5cbd03085b1a25d573b69931af1db/Mocky-0.2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "d52b59cd3fc7dbda7c801e92e97565b6", "sha256": "f664a603e546e9e29602415111892c0bddbb5a056a37337dd0a132a734e0c047" }, "downloads": -1, "filename": "Mocky-0.2.tar.gz", "has_sig": false, "md5_digest": "d52b59cd3fc7dbda7c801e92e97565b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2612, "upload_time": "2007-03-17T17:36:58", "url": "https://files.pythonhosted.org/packages/ed/16/a1d4e853b6900f4021b12fdc48372c31e5bfa19d59215f0c1d7f100600e7/Mocky-0.2.tar.gz" } ] }