{ "info": { "author": "Ardelean Vlad-George", "author_email": "de4sh@yahoo.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning" ], "description": "This library will help you to test systems that do not have the ideal architecture. \r\n\r\nIf you've got a DB server, and multiple other nodes that connect to it, changing state concurrently, you know how annoying it can be to reason about such situations.\r\n\r\nWhile your architecture should of course be improved (if possible), this library makes it easier to make assertions about the state of such a system.\r\n\r\nI use 3 concepts for this: **Starters**, **Checkpoints** and **Runners**.\r\n\r\n**Starters** are similar to Threads. They will start a certain chain of actions. In other words, they'll get a callable object and call it with some arguments. This callable represents your process under test.\r\n\r\nA **checkpoint** represents a snapshot in the life of one of the tested processes. A checkpoint is considered reached if all actions up to that logical point have been carried out (useful examples: all transactions have been commited OR only started - to test system consistency, all HTTP requests have been sent and responses have been received, or more generally, all methods have been called **UP TO** that point)\r\n\r\nA **runner** will run your processes (represented by the starters) in parallel. It must also know the order that the checkpoints should be hit in the life of those processes. It will pause the processes, if necessary, to ensure the checkpoints are hit in exactly the order they should.\r\nWhen runners pause, you can make assertions about the state of the system (check the DB or any other relevant stateful system). You can then manually resume the runner to either run to the next checkpoint, skip to a specific checkpoint, or to run until all processes have finished.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "The MIT License (MIT)\r\n\r\nCopyright (c) 2015 Vlad George Ardelean\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.", "maintainer": "Ardelean Vlad-George", "maintainer_email": "de4sh@yahoo.com", "name": "pyvaldi", "package_url": "https://pypi.org/project/pyvaldi/", "platform": "", "project_url": "https://pypi.org/project/pyvaldi/", "project_urls": null, "release_url": "https://pypi.org/project/pyvaldi/0.1.0/", "requires_dist": null, "requires_python": null, "summary": "Test helper library, for orchestrating parallel processes in order to make assertions about their state", "version": "0.1.0" }, "last_serial": 1614584, "releases": { "0.1.0": [] }, "urls": [] }