{ "info": { "author": "Philip CHAN", "author_email": "philip1134@imior.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Testing" ], "description": "=======\nmini-mo\n=======\n\n.. image:: https://travis-ci.org/philip1134/mini-mo.svg?branch=master\n :target: https://travis-ci.org/philip1134/mini-mo\n :alt: Build Status\n\n.. image:: https://img.shields.io/pypi/v/minimo.svg?color=orange\n :target: https://pypi.python.org/pypi/minimo\n :alt: PyPI Version\n\n.. image:: https://img.shields.io/pypi/pyversions/minimo.svg\n :target: https://pypi.org/project/minimo/\n :alt: Supported Python versions\n\n\n``minimo`` is a lightweight automation framework. mainly focused on\nautomated test/task. the project name comes from the mini robot M-O in\nWALL-E as the following guy:\n\n.. image:: https://github.com/philip1134/mini-mo/blob/master/artwork/walle-mo.jpg?raw=true\n :alt: M-O\n\nusing minimo, you can create some standardized project instances by\n``mmo init`` command. it will generate project with the organized\nfolders like:\n\n.. code:: text\n\n project-root-folder-with-project-name\n |- bin # minimo reserved command, don't touch it\n |- cases # suite and cases here\n |- ext # customized extensions, will be loaded before running commands\n |- lib # customized library, put all your common code here \u00a0\u00a0\u00a0\u00a0\n |- app.py \u00a0\u00a0\u00a0\u00a0\n |- performer.py\n |- templates # case template\n |- vendor # third-party libraries\n |- config.yml # project configuration\n |- README.md\n |- requirements.txt # dependencies here, can use ``pip install -r requirements.txt`` to install all dependencies\n\nafter project created, under the project root path you can use minimo\ncommands to create suite/cases by ``mmo new``, or run suite/cases by\n``mmo run``.\n\nminimo will create new cases from the case template which is under\n``templates`` folder. you can customize the template. you can also\ncustomize template for each suite if you create ``templates`` folder\nunder the suite root path.\n\ncurrently minimo can run suite/cases in two types, which are ``serial``\nand ``concorrence``, they are easy to understand from their names. and\nthey can be configured in ``config.yml``. the output can be configured\ntoo, currently supports ``text``, ``html`` or ``xml``.\n\ntip: we can use ``mmo`` or ``minimo`` as the main command after v0.4.0,\nbut in older version, it's only ``minimo``.\n\nUsage\n-----\n\nwe can use minimo by typing command in console, or calling its apis in\nyour own project.\n\nInstall and update using ``pip``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: text\n\n $ pip install -U minimo\n\nCreate project instance\n~~~~~~~~~~~~~~~~~~~~~~~\n\nusage in cli mode\n^^^^^^^^^^^^^^^^^\n\n.. code:: text\n\n $ mmo init [project-name] [-t template-name-or-path] [-o output-path]\n\nthe project will be created under 'output-path', if no 'output-path'\nspecified, that will be the current working directory. if not specified\ntemplate, minimo will initialize the project with 'task' template.\ncurrenty template name only supports 'task', or you can specify a path\nwhich contains the template.\n\nusage in api mode\n^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n import minimo\n\n mmo = minimo.Application(\n interface=\"api\",\n root_path=instance_project_path)\n\n # return True or False for `init` result\n result = mmo.call(\n \"init\",\n name=\"helloKitty\",\n output=\"./myprojects\")\n\nCreate new cases\n~~~~~~~~~~~~~~~~\n\nusage in cli mode\n^^^^^^^^^^^^^^^^^\n\n.. code:: text\n\n $ mmo new [cases...] [-a author]\n\nfor example:\n\n.. code:: text\n\n $ mmo new suite1/case1 suite2/case2 case3 [-a hellokitty]\n\nminimo will walk through the sub-directory of task suite, if templates\nexists in task suite, it initializes the case by the suite specified\ntemplates, otherwise, by the project default templates.\n\nif specified author name, it will be filled in the template file, or\nminimo will get the current system user as the author name.\n\nusage in api mode\n^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n import minimo\n\n mmo = minimo.Application(\n interface=\"api\",\n root_path=\"path/to/instance_project\")\n\n # return successfully created cases list\n cases = mmo.call(\n \"new\",\n cases=[\"case1\", \"suite2/case1\", \"suite2/case2\"])\n\ntemplate file is written in mako's syntax, check out\n`mako `__.\n\nList all standard cases\n~~~~~~~~~~~~~~~~~~~~~~~\n\nusage in cli mode\n^^^^^^^^^^^^^^^^^\n\n.. code:: text\n\n $ mmo ls [pattern...]\n\n\"pattern\" supports Unix shell-style wildcards, such as \\* or ?. if not\nspecified \"pattern\", it will list all standard cases' names under\n\"cases\" folder. if specified \"pattern\", it will search the case name by\n\"pattern\". can give multiple patterns, such as\uff1a\n\n.. code:: text\n\n $ mmo ls foo bar*\n\nusage in api mode\n^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n import minimo\n\n mmo = minimo.Application(\n interface=\"api\",\n root_path=\"path/to/instance_project\")\n\n # return sorted valid cases\n sorted_cases = mmo.call(\"ls\")\n\nRun suite\n~~~~~~~~~\n\nusage in cli mode\n^^^^^^^^^^^^^^^^^\n\n.. code:: text\n\n $ mmo run [case...]\n\ncan specify some cases separated by whitespace as:\n\n.. code:: text\n\n $ mmo run case1 case2 case3\n\nand also can specify some suites (case group under one folder) as:\n\n.. code:: text\n\n $ mmo run suite1 suite2 suite3\n\nminimo will run all cases under those suites.\n\nusage in api mode\n^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n import minimo\n\n mmo = minimo.Application(\n interface=\"api\",\n root_path=\"path/to/instance_project\")\n\n # return output file path or None if all failed\n sorted_cases = mmo.call(\n \"run\",\n cases=[\"suite1\", \"suite2/case1\", \"suite2/case2\"])\n\nGet help\n~~~~~~~~\n\n.. code:: text\n\n $ mmo --help\n $ mmo [command] --help\n\nseems not useful in api mode\n\nGet version\n~~~~~~~~~~~\n\nusage in cli mode\n^^^^^^^^^^^^^^^^^\n\n.. code:: text\n\n $ mmo version\n\nusage in api mode\n^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n import minimo\n\n mmo = minimo.Application(\n interface=\"api\",\n root_path=\"path/to/instance_project\")\n\n # version string\n version = mmo.call(\"version\")", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/philip1134/mini-mo", "keywords": "Python Automation", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "minimo", "package_url": "https://pypi.org/project/minimo/", "platform": "any", "project_url": "https://pypi.org/project/minimo/", "project_urls": { "Homepage": "https://github.com/philip1134/mini-mo" }, "release_url": "https://pypi.org/project/minimo/0.5.2/", "requires_dist": null, "requires_python": "", "summary": "A lightweight automation framework.", "version": "0.5.2" }, "last_serial": 5576768, "releases": { "0.2.2b3": [ { "comment_text": "", "digests": { "md5": "a8f5f62f87ba8f0c790e21c4f78d11f5", "sha256": "18b0d769483ee68ceee14bd9a6a1dff3310abb2c37690540ca28eeefab225f6f" }, "downloads": -1, "filename": "minimo-0.2.2b3.tar.gz", "has_sig": false, "md5_digest": "a8f5f62f87ba8f0c790e21c4f78d11f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26572, "upload_time": "2018-07-27T09:07:16", "url": "https://files.pythonhosted.org/packages/bd/f5/b14e95c833288502a8074c841c8ed2006f66de58f7a6c8c5ef2d590caaac/minimo-0.2.2b3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "58b8bb76f69c7c56748293123e10af5e", "sha256": "9e8599ae148d2b65646c8409d8fd452b685ee54c7f000c1f0e36e4acf6716ce5" }, "downloads": -1, "filename": "minimo-0.3.1.tar.gz", "has_sig": false, "md5_digest": "58b8bb76f69c7c56748293123e10af5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16259, "upload_time": "2018-12-19T11:27:52", "url": "https://files.pythonhosted.org/packages/fb/86/2e2c67f77cf571ef7cf4d6ce1225737776e66e3ce4f08f95f89bf706b4c4/minimo-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "12b66952fee527fe560b1156b24cfc81", "sha256": "e05080bb47bbefef62ad861fcd4df5c22ee6eb4273320320f06765ed194af7f8" }, "downloads": -1, "filename": "minimo-0.4.0.tar.gz", "has_sig": false, "md5_digest": "12b66952fee527fe560b1156b24cfc81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19685, "upload_time": "2019-06-19T08:47:57", "url": "https://files.pythonhosted.org/packages/4d/50/465b4f570240f508312be87367fee645f8c18cda237c10541b0dabca82a3/minimo-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "a10f08ac0e9ca4ce2099155bd4f12954", "sha256": "29eb08e9d3fea71becf5a3465619437b4cfd1b6910f91848706563551b560bab" }, "downloads": -1, "filename": "minimo-0.4.1.tar.gz", "has_sig": false, "md5_digest": "a10f08ac0e9ca4ce2099155bd4f12954", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20670, "upload_time": "2019-07-03T08:45:39", "url": "https://files.pythonhosted.org/packages/1a/86/7e16e5a4c223275a94354d4207e2ce5711bb3763189793024162432a392f/minimo-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "dcf233d5262391b3796b237a32a5ebd3", "sha256": "1c26ad6361dcb8caa19c36ab1a613c171098d5b8662fc7e457c697f607b1d1c9" }, "downloads": -1, "filename": "minimo-0.5.0.tar.gz", "has_sig": false, "md5_digest": "dcf233d5262391b3796b237a32a5ebd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20868, "upload_time": "2019-07-11T05:48:56", "url": "https://files.pythonhosted.org/packages/e4/a3/b029a49f5af81e460b585cd53a1d847251afa092373c133eeb41c075dd64/minimo-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "94e18c2f202578ba8a986b2481ecce82", "sha256": "148f5f6f42825ddb89a4afc18537443c47b0762edee9ad7bf0ec390a3c7383c7" }, "downloads": -1, "filename": "minimo-0.5.1.tar.gz", "has_sig": false, "md5_digest": "94e18c2f202578ba8a986b2481ecce82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21112, "upload_time": "2019-07-15T06:36:52", "url": "https://files.pythonhosted.org/packages/e3/7f/9f6138e965c104f9b1adad2c1d1507c6bf4798ae38c39a63b2f1e51735fc/minimo-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "99c79c9787c66b954e15a8f51a08d627", "sha256": "8e86fee6d4b753b431bbbc18e56449222776ee7c9950bd0f9464cbab5429c1c2" }, "downloads": -1, "filename": "minimo-0.5.2.tar.gz", "has_sig": false, "md5_digest": "99c79c9787c66b954e15a8f51a08d627", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21610, "upload_time": "2019-07-24T09:19:07", "url": "https://files.pythonhosted.org/packages/c1/97/fa5b0a2cd7bed79095be6d4b785dd75f4ca1311b9aa385115656625a46f4/minimo-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "99c79c9787c66b954e15a8f51a08d627", "sha256": "8e86fee6d4b753b431bbbc18e56449222776ee7c9950bd0f9464cbab5429c1c2" }, "downloads": -1, "filename": "minimo-0.5.2.tar.gz", "has_sig": false, "md5_digest": "99c79c9787c66b954e15a8f51a08d627", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21610, "upload_time": "2019-07-24T09:19:07", "url": "https://files.pythonhosted.org/packages/c1/97/fa5b0a2cd7bed79095be6d4b785dd75f4ca1311b9aa385115656625a46f4/minimo-0.5.2.tar.gz" } ] }