{ "info": { "author": "Canonical Online Services Team", "author_email": "cgoldberg _at_ gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Internet :: WWW/HTTP :: Browsers", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Testing" ], "description": "============================\n SST - Web Test Framework\n============================\n\n:Web Home: http://testutils.org/sst\n:Project Home: https://launchpad.net/selenium-simple-test\n:PyPI: http://pypi.python.org/pypi/sst\n:License: Apache License, Version 2.0\n:Author: Copyright (c) 2011-2013 Canonical Ltd.\n\n\n---------------------------------\n Automated Testing with Python\n---------------------------------\n\nSST (selenium-simple-test) is a web test framework that uses Python\nto generate functional browser-based tests.\n\nTests are made up of scripts, created by composing actions that drive\na browser and assert conditions. You have the flexibilty of the full\nPython language, along with a convenient set of functions to simplify\nweb testing.\n\nSST consists of:\n\n * user actions and assertions (API) in Python\n * test case loader (generates/compiles scripts to unittest cases)\n * console test runner\n * data parameterization/injection\n * selectable output reports\n * selectable browsers\n * headless (xvfb) mode\n * screenshots on errors\n\nTest output is displayed to the console and optionally saved as \nJUnit-compatible XML for compatibility with CI systems.\n\n\n-----------\n Install\n-----------\n\nSST can be installed from `PyPI `_ using\n`pip `_::\n\n pip install -U sst\n\nFor example, on an Ubuntu/Debian system, you could Install SST (system-wide)\nlike this::\n\n $ sudo apt-get install python-pip xvfb\n $ sudo pip install -U sst\n\nor with a `virtualenv`::\n\n $ sudo apt-get install python-virtualenv xvfb\n $ virtualenv ENV\n $ source ENV/bin/activate\n (ENV)$ pip install sst\n\n* note: `xvfb` is only needed if you want to run SST in headless mode\n\n\n---------------------------\n Example SST test script\n---------------------------\n\na sample test case in SST::\n\n from sst.actions import *\n\n go_to('http://www.ubuntu.com/')\n assert_title_contains('Ubuntu')\n\n\n------------------------------------\n Running a test with SST\n------------------------------------\n\nCreate a Python script (.py) file, and add your test code.\n\nThen call your test script from the command line, using `sst-run`::\n\n $ sst-run mytest\n\n* note: you don't add the .py extension to your test invocation\n\n\n-----------------------------------\n Actions reference (sst.actions)\n-----------------------------------\n\nTest scripts perform actions in the browser as if they were a user.\nSST provides a set of \"actions\" (functions) for use in your tests.\nThese actions are defined in the following API:\n\n * `Actions Reference `_\n\n\n------------------------------------\n Command line options for sst-run\n------------------------------------\n\nUsage: `sst-run [testname]`\n\n* Calling sst-run with testname(s) as arguments will just run\n those tests. The testnames should not include '.py' at\n the end of the filename.\n\n* You may optionally create a data file for data-driven\n testing. Create a '^' delimited txt data file with the same\n name as the test, plus the '.csv' extension. This will\n run a test using each row in the data file (1st row of data\n file is variable name mapping)\n\nOptions::\n\n -h, --help show this help message and exit\n -d DIR_NAME directory of test case files\n -r REPORT_FORMAT report type: xml\n -b BROWSER_TYPE select webdriver (Firefox, Chrome, PhantomJS, etc)\n -j disable javascript in browser\n -m SHARED_MODULES directory for shared modules\n -q output less debugging info during test run\n -V print version info and exit\n -s save screenshots on failures\n -x run browser in headless xserver (Xvfb)\n --failfast stop test execution after first failure\n --debug drop into debugger on test fail or error\n --with-flags=WITH_FLAGS comma separated list of flags to run tests with\n --disable-flag-skips run all tests, disable skipping tests due to flags\n --extended-tracebacks add extra information (page source) to failure reports\n --collect-only collect/print cases without running tests\n --test run selftests (acceptance tests with django server)\n\n\n--------------------\n Organizing tests\n--------------------\n\nFor logical organization of tests, you can use directories in your filesystem.\nSST will recursively walk your directory tree and gather all tests for\nexecution.\n\nFor example, a simple test setup might look like::\n\n /selenium-simple-test\n /mytests\n foo.py\n\nand you would call this from the command line::\n\n $ sst-run -d mytests\n\nA more complex setup might look like::\n\n /selenium-simple-test\n /mytests\n /project_foo\n /feature_foo\n foo.py\n /project_bar\n feature_bar.py\n feature_baz.py\n /shared\n module.py\n utils.py\n\nand you would still call this from the command like::\n\n $ sst-run -d mytests\n\nSST will find all of the tests in subdirectories (including symlinks) and\nexecute them. SST won't look in directories starting with an underscore. This\nallows you to put Python packages/modules directly in your test directories\nif you want. A better option is to use the shared directory.\n\n\n---------------------------------\nUsing sst in unittest test suites\n---------------------------------\n\nsst uses unittest test cases internally to wrap the execution of the script\nand taking care of starting and stopping the browser. If you prefer to\nintegrate some sst tests into an existing unittest test suite you can use\nSSTTestCase from runtests.py::\n\n from sst.actions import *\n from sst import runtests\n\n class TestUbuntu(runtests.SSTTestCase):\n\n def test_ubuntu_home_page(self):\n go_to('http://www.ubuntu.com/')\n assert_title_contains('Ubuntu')\n\nSo, with the above in a file name test_ubuntu.py you can run the test with\n(for example)::\n\n python -m unittest test_ubuntu.py\n\n`sst-run` provides an headless xserver via the `-x` option. `SSTTestCase`\nprovides the same feature (sharing the same implementation) via two class\nattributes.\n\n`xserver_headless` when set to `True` will start an headless server for each\ntest (and stop it after the test). If you want to share the same server\nacross several tests, set `xvfb`. You're then responsible for starting and\nstopping this server (see `src/sst/xvfbdisplay.py` for details or\n`src/sst/tests/test_xvfb.py` for examples.\n\n\n--------------------\n Shared directory\n--------------------\n\nSST allows you to have a directory called `shared` in the top level directory\nof your tests, which is added to `sys.path`. Here you can keep helper modules\nused by all your tests. `sst-run` will not run Python files in the `shared`\ndirectory as tests.\n\nBy default SST looks in the test directory you specify to find `shared`,\nalternatively you can specify a different directory using the `-m` command\nline argument to `sst-run`.\n\nIf there is no `shared` directory in the test directory, then `sst-run` will\nwalk up from the test directory to the current directory looking for one. This\nallows you to run tests just from a subdirectory without having to explicitly\nspecify where the shared directory is.\n\n\n---------------------\n sst.config module\n---------------------\n\nInside tests you can import the `sst.config` module to know various things\nabout the current test environment. The `sst.config` module has the following\ninformation::\n\n from sst import config\n\n # is javascript disabled?\n config.javascript_disabled\n\n # which browser is being used?\n config.browser_type\n\n # full path to the shared directory\n config.shared_directory\n\n # full path to the results directory\n config.results_directory\n\n # flags for the current test run\n config.flags\n\n # A per test cache. A dictionary that is cleared at the start of each test.\n config.cache\n\n------------------------\n Disabling Javascript\n------------------------\n\nIf you need to disable Javascript for an individual test you can do it by\nputting the following at the start of the test::\n\n JAVASCRIPT_DISABLED = True\n\n\n--------------------------------\n Development on Ubuntu/Debian\n--------------------------------\n\n* SST is primarily being developed on Linux, specifically Ubuntu. It should\n work fine on other platforms, but any issues (or even better - patches)\n should be reported on the Launchpad project.\n\n* Get a copy of SST Trunk, create and activate a virtualenv, install requirements, \n and run examples/self-tests from the dev branch::\n\n $ sudo apt-get install bzr python-virtualenv xvfb\n $ bzr branch lp:selenium-simple-test\n $ cd selenium-simple-test\n $ virtualenv ENV\n $ source ENV/bin/activate\n (ENV)$ pip install -r requirements.txt\n (ENV)$ ./sst-run -d examples\n \n* (optional) Install test dependencies and run SST's internal unit tests::\n\n (ENV)$ pip install mock nose pep8\n (ENV)$ nosetests --match ^test_.* --exclude=\"ENV|testproject|selftests\"\n\n* (optional) Install `django` and run SST's internal test application with\n acceptance tests\n\n (ENV)$ pip install django\n (ENV)$ ./sst-run --test -x\n\n* `Launchpad Project `_\n\n* `Browse the Source (Trunk)\n `_\n\n* To manually setup dependencies, SST uses the following non-stdlib packages:\n\n * selenium\n * testtools\n * django (optional - needed for internal self-tests only)\n\n------------------------\n Running the examples\n------------------------\n\nSST source code repository and package download contain some trivial example\nscripts.\n\nYou can run them from your local sst directory like this::\n\n $ ./sst-run -d examples\n\n\n--------------------------\n Running the self-tests\n--------------------------\n\nSST source code repository and package download contain a set of self-tests\nbased on an included test Django project.\n\nYou can run the suite of self-tests (and the test Django server) from your\nlocal branch like this::\n\n $ ./sst-run --test\n\n\n-----------------\n Related links\n-----------------\n\n* `Selenium Project Home `_\n* `Selenium WebDriver (from 'Architecture of Open Source Applications')\n `_\n* `Python Unittest `_", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://testutils.org/sst", "keywords": "selenium,webdriver,test,testing,web,automation", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "sst", "package_url": "https://pypi.org/project/sst/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/sst/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://testutils.org/sst" }, "release_url": "https://pypi.org/project/sst/0.2.4/", "requires_dist": null, "requires_python": null, "summary": "SST - Web Test Framework", "version": "0.2.4" }, "last_serial": 828703, "releases": { "0.0": [], "0.1.0": [ { "comment_text": "", "digests": { "md5": "427f8c60a4130d99756ec1735bd5e9af", "sha256": "41f9179379897e20aa3d3cf993145f66b7aca86531f5679eb5c3e7fe4d8656d1" }, "downloads": -1, "filename": "sst-0.1.0.tar.gz", "has_sig": false, "md5_digest": "427f8c60a4130d99756ec1735bd5e9af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 131533, "upload_time": "2012-01-02T00:50:12", "url": "https://files.pythonhosted.org/packages/74/8b/a8d1212f64702efbd73ae44d348901253756d370d53a1fa645a1b72bbe4a/sst-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "60e81635b8d98910f81869764ae8399b", "sha256": "f216a95d5a41a60e292ceca4f67a36b2a737e622a0b96e23e4ae56bc7329ddc2" }, "downloads": -1, "filename": "sst-0.2.0.tar.gz", "has_sig": false, "md5_digest": "60e81635b8d98910f81869764ae8399b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 136362, "upload_time": "2012-02-26T14:27:53", "url": "https://files.pythonhosted.org/packages/d8/70/9c53c50867354f6545d1132d21f85c3a42ac35053c33b8eaaef709975eaf/sst-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "69269190482b5c9abb565fd9235ec6c4", "sha256": "1ed18c9aaab09ec2a24fb627fdbe68e5ef35b9d71d9a96700f1f83a745c2b0d1" }, "downloads": -1, "filename": "sst-0.2.1.tar.gz", "has_sig": false, "md5_digest": "69269190482b5c9abb565fd9235ec6c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 136864, "upload_time": "2012-04-22T16:18:30", "url": "https://files.pythonhosted.org/packages/c3/d4/b3f5f7a9bbaa1d703fb14ef1f1726044a76a5b2371fe18ed7a3eebf572ea/sst-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "1ae659c28ea76a8aa926de5307531e29", "sha256": "daf332d952b4854eb8b9a44cb2b9c06ca094a2af9e20807107c4d6167f7b0343" }, "downloads": -1, "filename": "sst-0.2.2.tar.gz", "has_sig": false, "md5_digest": "1ae659c28ea76a8aa926de5307531e29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 148359, "upload_time": "2012-11-04T20:07:17", "url": "https://files.pythonhosted.org/packages/fb/4a/b5dcd81c20dab15a10c4aea0dada4e652c478fa4fbc7ed14fd2c4f7eef24/sst-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "e0fe146cf78f16244101fc1a82f9a77d", "sha256": "25d864847aaf8cd54dfc99746f59685cd4c00a25270f9d72d443dd999701c2a3" }, "downloads": -1, "filename": "sst-0.2.3.tar.gz", "has_sig": false, "md5_digest": "e0fe146cf78f16244101fc1a82f9a77d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 171176, "upload_time": "2013-04-17T14:09:56", "url": "https://files.pythonhosted.org/packages/ba/68/2fd47a657644d8aa9cb6008a73a6d1223d2456f417f813beff2a77cd50d3/sst-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "501e3dd29eff1acfb141a4eebc9147a7", "sha256": "cc2a5469e745fef6986df2e3638b0af96a6033a1b268bdc4654d27b2914d0d0f" }, "downloads": -1, "filename": "sst-0.2.4.tar.gz", "has_sig": false, "md5_digest": "501e3dd29eff1acfb141a4eebc9147a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 171202, "upload_time": "2013-07-30T21:01:43", "url": "https://files.pythonhosted.org/packages/a1/52/de850270ffe20766f6ca1c19a0fd2d0ed0a2143950210446a74815c614f0/sst-0.2.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "501e3dd29eff1acfb141a4eebc9147a7", "sha256": "cc2a5469e745fef6986df2e3638b0af96a6033a1b268bdc4654d27b2914d0d0f" }, "downloads": -1, "filename": "sst-0.2.4.tar.gz", "has_sig": false, "md5_digest": "501e3dd29eff1acfb141a4eebc9147a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 171202, "upload_time": "2013-07-30T21:01:43", "url": "https://files.pythonhosted.org/packages/a1/52/de850270ffe20766f6ca1c19a0fd2d0ed0a2143950210446a74815c614f0/sst-0.2.4.tar.gz" } ] }