Name | c4t JSON |
Version |
1.6.0
JSON |
| download |
home_page | None |
Summary | Install Chrome for Testing assets. |
upload_time | 2024-05-04 02:50:59 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8.10 |
license | None |
keywords |
chrome
testing
selenium
chromedriver
cft
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
[![Build Status](https://dev.azure.com/p4irin/c4t/_apis/build/status%2Fp4irin.c4t?branchName=master&jobName=BuildAndTest&configuration=BuildAndTest%20Python38)](https://dev.azure.com/p4irin/c4t/_build/latest?definitionId=5&branchName=master)
[![c4t publish](https://github.com/p4irin/c4t/actions/workflows/python-publish.yml/badge.svg)](https://github.com/p4irin/c4t/actions/workflows/python-publish.yml)
![PyPI - Version](https://img.shields.io/pypi/v/c4t)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/c4t)
![PyPI - Format](https://img.shields.io/pypi/format/c4t)
![PyPI - License](https://img.shields.io/pypi/l/c4t)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
# c4t: Chrome for Testing - v1.6.0
Install _Chrome for Testing_ assets. A flavor of Chrome, specifically for testing and a matching chromedriver. Currently, the version of assets installed is for _linux64_ platforms only.
## Why Chrome for Testing?
Taken from [the Chrome Developers Blog](https://developer.chrome.com/blog/chrome-for-testing/)
> ...setting up an adequate browser testing environment is notoriously difficult...
>
> You want consistent, reproducible results across repeated test runs—but this may not happen if the browser executable or binary decides to update itself in between two runs.
>
>You want to pin a specific browser version and check that version number into your source code repository, so that you can check out old commits and branches and re-run the tests against the browser binary from that point in time.
>
> Not only do you have to download a Chrome binary somehow, you also need a correspondingly-versioned ChromeDriver binary to ensure the two binaries are compatible.
>
> Chrome for Testing is a dedicated flavor of Chrome targeting the testing use case, without auto-update, integrated into the Chrome release process, made available for every Chrome release
>
> ...finding a matching Chrome and ChromeDriver binary can be completely eliminated by integrating the ChromeDriver release process into the Chrome for Testing infrastructure.
## Requirements
To use Chrome for Testing assets you'll need a version of Selenium > 4.11.0
## Installation
### From PyPI
```bash
(venv) $ pip install c4t
(venv) $
```
### From GitHub
```bash
(venv) $ pip install git+https://github.com/p4irin/c4t.git
(venv) $
```
## Verify
### In a REPL
#### Show version
```bash
(venv) $ python
Python 3.8.10 (default, Jun 2 2021, 10:49:15)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import c4t
>>> c4t.__version__
'<major>.<minor>.<patch>'
>>>
```
### Or on the command line
#### Show version
```bash
(venv) $ c4t --version
v1.1.0
(venv) $
```
#### Display package documentation
```bash
(venv) $ python -m pydoc c4t
(venv) $
```
## Usage
### In code
#### Install the default, the latest stable version and use it with Selenium
```bash
Python 3.8.10 (default, May 26 2023, 14:05:08)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import c4t
>>> assets = c4t.Assets()
>>> assets.install()
Create directory ${HOME}/.c4t-assets/124.0.6367.91
Downloading chrome-linux64.zip.
100% [......................................................................] 146689409 / 146689409
Downloading chromedriver-linux64.zip.
100% [..........................................................................] 7508443 / 7508443
Unzipping chrome-linux64.zip
Unzipping chromedriver-linux64.zip
Creating symlink to chrome version 117.0.5938.62
Creating symlink to chromedriver version 117.0.5938.62
Finished installing version 117.0.5938.62 of Chrome for Testing and Chromedriver.
-------------------------------------------
Version 117.0.5938.62 is the active version
-------------------------------------------
>>> from selenium.webdriver import ChromeOptions, ChromeService, Chrome
>>> options = ChromeOptions()
>>> options.binary_location = c4t.location.chrome
>>> service = ChromeService(executable_path=c4t.location.chromedriver)
>>> browser = Chrome(options=options, service=service)
>>> browser.get('https://pypi.org/user/p4irin/')
>>> browser.close()
>>> browser.quit()
>>>
```
### On the command line
#### Display command line help
```bash
(venv) $ c4t --help
usage: c4t [-h] [-V] {install,path,list,switch,delete} ...
Install 'Chrome for Testing' assets
options:
-h, --help show this help message and exit
-V, --version Show version and exit.
Commands:
{install,path,list,switch,delete}
install Install a version of 'Chrome for Testing' assets
path Show the installation path of assets and exit
list List versions
switch Switch the active version
delete Delete an installed version
Reference: https://github.com/GoogleChromeLabs/chrome-for-testing
```
```bash
(venv) $ c4t install --help
usage: c4t install [-h] [--version VERSION] [-l]
Install a version of 'Chrome for Testing' assets.
options:
-h, --help show this help message and exit
--version VERSION The version of 'Chrome for Testing' assets to install. The default is 'latest'
-l, --last-known-good-version
Install a last known good version from a list
```
#### Install the default, the latest stable version
```bash
# By default assets are installed in ${HOME}/.c4t-assets
# To use a different path, set the C4T_PATH_TO_ASSETS environment variable.
# e.g.: export C4T_PATH_TO_ASSETS=<path>
# Add this export to your .bashrc so the path is set for every bash session.
(venv) $ c4t install
```
#### Install a specific version
```bash
(venv) $ c4t install --version 116.0.5794.0
```
#### Install a last known good version from a list
```bash
# Notice the list also indicates versions you already installed
(venv) $ c4t install -l
0 - Stable version=124.0.6367.91, revision=1274542, installed
1 - Beta version=125.0.6422.26, revision=1287751
2 - Dev version=126.0.6439.0, revision=1292160, installed
3 - Canary version=126.0.6449.0, revision=1293886
Select a version by number:
```
#### Show installation path of assets
```bash
(venv) $ c4t path
Path to assets: /home/p4irin/.c4t-assets
```
#### Show the currently active version
```bash
(venv) $ c4t list --active
Active version of 'Chrome for Testing' assets installed: 124.0.6367.91
```
#### Show a list of installed versions
```bash
# Notice the active version is marked 'active'
(venv) $ c4t list --installed
0 - 116.0.5794.0
1 - 124.0.6367.91, active
2 - 125.0.6422.14
3 - 126.0.6439.0
```
#### Show a list of last known good versions
```bash
(venv) $ c4t list --last-known-good-versions
0 - Stable version=124.0.6367.91, revision=1274542, installed
1 - Beta version=125.0.6422.26, revision=1287751
2 - Dev version=126.0.6439.0, revision=1292160, installed
3 - Canary version=126.0.6449.0, revision=1293886
```
#### Switch active version
```bash
(venv) $ c4t switch
0 - 116.0.5794.0
1 - 124.0.6367.91, active
2 - 125.0.6422.14
3 - 126.0.6439.0
Select a version by number: 0
Creating symlink to chrome version 116.0.5794.0
Creating symlink to chromedriver version 116.0.5794.0
Active version is now: 116.0.5794.0
```
### Common workflow
1. Install one or more versions of Chrome for testing assets
1. Set/switch the active version
1. Run your Selenium Webdriver tests with the active version of Chrome for testing
E.g., this allows for quickly switching back to a previous version of Chrome to run your tests against in case of a regression on a recent/latest version. For example, a test failing against the latest of Chrome, did it pass consistently on the previous version or is it flaky and in need for a more robust implementation?
## Reference
- [Blog](https://developer.chrome.com/blog/chrome-for-testing/)
- [GitHub](https://github.com/GoogleChromeLabs/chrome-for-testing)
Raw data
{
"_id": null,
"home_page": null,
"name": "c4t",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8.10",
"maintainer_email": null,
"keywords": "chrome, testing, selenium, chromedriver, cft",
"author": null,
"author_email": "p4irin <139928764+p4irin@users.noreply.github.com>",
"download_url": "https://files.pythonhosted.org/packages/fa/3e/0de5dcdba93776340c91bc613a0e3da16f49aca707ac22111604dc008cab/c4t-1.6.0.tar.gz",
"platform": null,
"description": "[![Build Status](https://dev.azure.com/p4irin/c4t/_apis/build/status%2Fp4irin.c4t?branchName=master&jobName=BuildAndTest&configuration=BuildAndTest%20Python38)](https://dev.azure.com/p4irin/c4t/_build/latest?definitionId=5&branchName=master)\n[![c4t publish](https://github.com/p4irin/c4t/actions/workflows/python-publish.yml/badge.svg)](https://github.com/p4irin/c4t/actions/workflows/python-publish.yml)\n![PyPI - Version](https://img.shields.io/pypi/v/c4t)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/c4t)\n![PyPI - Format](https://img.shields.io/pypi/format/c4t)\n![PyPI - License](https://img.shields.io/pypi/l/c4t)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n# c4t: Chrome for Testing - v1.6.0\n\nInstall _Chrome for Testing_ assets. A flavor of Chrome, specifically for testing and a matching chromedriver. Currently, the version of assets installed is for _linux64_ platforms only.\n\n## Why Chrome for Testing?\n\nTaken from [the Chrome Developers Blog](https://developer.chrome.com/blog/chrome-for-testing/)\n\n> ...setting up an adequate browser testing environment is notoriously difficult...\n>\n> You want consistent, reproducible results across repeated test runs\u2014but this may not happen if the browser executable or binary decides to update itself in between two runs.\n>\n>You want to pin a specific browser version and check that version number into your source code repository, so that you can check out old commits and branches and re-run the tests against the browser binary from that point in time.\n>\n> Not only do you have to download a Chrome binary somehow, you also need a correspondingly-versioned ChromeDriver binary to ensure the two binaries are compatible.\n>\n> Chrome for Testing is a dedicated flavor of Chrome targeting the testing use case, without auto-update, integrated into the Chrome release process, made available for every Chrome release\n>\n> ...finding a matching Chrome and ChromeDriver binary can be completely eliminated by integrating the ChromeDriver release process into the Chrome for Testing infrastructure.\n\n## Requirements\n\nTo use Chrome for Testing assets you'll need a version of Selenium > 4.11.0\n\n## Installation\n\n### From PyPI\n\n```bash\n(venv) $ pip install c4t\n(venv) $\n```\n\n### From GitHub\n\n```bash\n(venv) $ pip install git+https://github.com/p4irin/c4t.git\n(venv) $\n```\n\n## Verify\n\n### In a REPL\n\n#### Show version\n\n```bash\n(venv) $ python\nPython 3.8.10 (default, Jun 2 2021, 10:49:15) \n[GCC 9.4.0] on linux\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n>>> import c4t\n>>> c4t.__version__\n'<major>.<minor>.<patch>'\n>>>\n```\n\n### Or on the command line\n\n#### Show version\n\n```bash\n(venv) $ c4t --version\nv1.1.0\n(venv) $\n```\n\n#### Display package documentation\n\n```bash\n(venv) $ python -m pydoc c4t\n(venv) $\n```\n\n## Usage\n\n### In code\n\n#### Install the default, the latest stable version and use it with Selenium\n\n```bash\nPython 3.8.10 (default, May 26 2023, 14:05:08) \n[GCC 9.4.0] on linux\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n>>> import c4t\n>>> assets = c4t.Assets()\n>>> assets.install()\nCreate directory ${HOME}/.c4t-assets/124.0.6367.91\nDownloading chrome-linux64.zip.\n100% [......................................................................] 146689409 / 146689409\n\nDownloading chromedriver-linux64.zip.\n100% [..........................................................................] 7508443 / 7508443\n\nUnzipping chrome-linux64.zip\nUnzipping chromedriver-linux64.zip\nCreating symlink to chrome version 117.0.5938.62\nCreating symlink to chromedriver version 117.0.5938.62\nFinished installing version 117.0.5938.62 of Chrome for Testing and Chromedriver.\n-------------------------------------------\nVersion 117.0.5938.62 is the active version\n-------------------------------------------\n>>> from selenium.webdriver import ChromeOptions, ChromeService, Chrome\n>>> options = ChromeOptions()\n>>> options.binary_location = c4t.location.chrome\n>>> service = ChromeService(executable_path=c4t.location.chromedriver)\n>>> browser = Chrome(options=options, service=service)\n>>> browser.get('https://pypi.org/user/p4irin/')\n>>> browser.close()\n>>> browser.quit()\n>>>\n```\n\n### On the command line\n\n#### Display command line help\n\n```bash\n(venv) $ c4t --help\nusage: c4t [-h] [-V] {install,path,list,switch,delete} ...\n\nInstall 'Chrome for Testing' assets\n\noptions:\n -h, --help show this help message and exit\n -V, --version Show version and exit.\n\nCommands:\n {install,path,list,switch,delete}\n install Install a version of 'Chrome for Testing' assets\n path Show the installation path of assets and exit\n list List versions\n switch Switch the active version\n delete Delete an installed version\n\nReference: https://github.com/GoogleChromeLabs/chrome-for-testing\n```\n\n```bash\n(venv) $ c4t install --help\nusage: c4t install [-h] [--version VERSION] [-l]\n\nInstall a version of 'Chrome for Testing' assets.\n\noptions:\n -h, --help show this help message and exit\n --version VERSION The version of 'Chrome for Testing' assets to install. The default is 'latest'\n -l, --last-known-good-version\n Install a last known good version from a list\n```\n\n#### Install the default, the latest stable version\n\n```bash\n# By default assets are installed in ${HOME}/.c4t-assets\n# To use a different path, set the C4T_PATH_TO_ASSETS environment variable.\n# e.g.: export C4T_PATH_TO_ASSETS=<path>\n# Add this export to your .bashrc so the path is set for every bash session.\n(venv) $ c4t install\n```\n\n#### Install a specific version\n\n```bash\n(venv) $ c4t install --version 116.0.5794.0\n```\n\n#### Install a last known good version from a list\n\n```bash\n# Notice the list also indicates versions you already installed\n(venv) $ c4t install -l\n0 - Stable version=124.0.6367.91, revision=1274542, installed\n1 - Beta version=125.0.6422.26, revision=1287751\n2 - Dev version=126.0.6439.0, revision=1292160, installed\n3 - Canary version=126.0.6449.0, revision=1293886\nSelect a version by number:\n```\n\n#### Show installation path of assets\n\n```bash\n(venv) $ c4t path\nPath to assets: /home/p4irin/.c4t-assets\n```\n\n#### Show the currently active version\n\n```bash\n(venv) $ c4t list --active\nActive version of 'Chrome for Testing' assets installed: 124.0.6367.91\n```\n\n#### Show a list of installed versions\n\n```bash\n# Notice the active version is marked 'active'\n(venv) $ c4t list --installed\n0 - 116.0.5794.0\n1 - 124.0.6367.91, active\n2 - 125.0.6422.14\n3 - 126.0.6439.0\n```\n\n#### Show a list of last known good versions\n\n```bash\n(venv) $ c4t list --last-known-good-versions\n0 - Stable version=124.0.6367.91, revision=1274542, installed\n1 - Beta version=125.0.6422.26, revision=1287751\n2 - Dev version=126.0.6439.0, revision=1292160, installed\n3 - Canary version=126.0.6449.0, revision=1293886\n```\n\n#### Switch active version\n\n```bash\n(venv) $ c4t switch\n0 - 116.0.5794.0\n1 - 124.0.6367.91, active\n2 - 125.0.6422.14\n3 - 126.0.6439.0\nSelect a version by number: 0\nCreating symlink to chrome version 116.0.5794.0\nCreating symlink to chromedriver version 116.0.5794.0\nActive version is now: 116.0.5794.0\n```\n\n### Common workflow\n\n1. Install one or more versions of Chrome for testing assets\n1. Set/switch the active version\n1. Run your Selenium Webdriver tests with the active version of Chrome for testing\n\nE.g., this allows for quickly switching back to a previous version of Chrome to run your tests against in case of a regression on a recent/latest version. For example, a test failing against the latest of Chrome, did it pass consistently on the previous version or is it flaky and in need for a more robust implementation?\n\n## Reference\n\n- [Blog](https://developer.chrome.com/blog/chrome-for-testing/)\n- [GitHub](https://github.com/GoogleChromeLabs/chrome-for-testing)\n",
"bugtrack_url": null,
"license": null,
"summary": "Install Chrome for Testing assets.",
"version": "1.6.0",
"project_urls": {
"Bug Tracker": "https://github.com/p4irin/c4t/issues",
"Homepage": "https://github.com/p4irin/c4t"
},
"split_keywords": [
"chrome",
" testing",
" selenium",
" chromedriver",
" cft"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2c4ffb34281e7cdf1170266e77bd1dc3f85f872cb34deb2c5597b01ba866d2c4",
"md5": "bd85b897bcf3fd2f69b141c2d42ecc46",
"sha256": "e55e3c911aab237a3bb8c3ad03b25bec3a1d081ba71ed4c696665e19bb190535"
},
"downloads": -1,
"filename": "c4t-1.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bd85b897bcf3fd2f69b141c2d42ecc46",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8.10",
"size": 10238,
"upload_time": "2024-05-04T02:50:58",
"upload_time_iso_8601": "2024-05-04T02:50:58.343543Z",
"url": "https://files.pythonhosted.org/packages/2c/4f/fb34281e7cdf1170266e77bd1dc3f85f872cb34deb2c5597b01ba866d2c4/c4t-1.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fa3e0de5dcdba93776340c91bc613a0e3da16f49aca707ac22111604dc008cab",
"md5": "3d63cb0555e5429acec14e9b6f7b8e7e",
"sha256": "9f87969cccb3a5aeed86e61558cf3f20510c6daac615f53ee46654a91c4f0164"
},
"downloads": -1,
"filename": "c4t-1.6.0.tar.gz",
"has_sig": false,
"md5_digest": "3d63cb0555e5429acec14e9b6f7b8e7e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8.10",
"size": 13657,
"upload_time": "2024-05-04T02:50:59",
"upload_time_iso_8601": "2024-05-04T02:50:59.891159Z",
"url": "https://files.pythonhosted.org/packages/fa/3e/0de5dcdba93776340c91bc613a0e3da16f49aca707ac22111604dc008cab/c4t-1.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-04 02:50:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "p4irin",
"github_project": "c4t",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "c4t"
}