Percy visual testing for Python Selenium

Overview

percy-selenium-python

Test

Percy visual testing for Python Selenium.

Installation

npm install @percy/cli:

$ npm install --save-dev @percy/cli

pip install Percy selenium package:

$ pip install percy-selenium

Usage

This is an example test using the percy_snapshot function.

from percy import percy_snapshot

browser = webdriver.Firefox()
browser.get('http://example.com')
​
# take a snapshot
percy_snapshot(browser, 'Python example')

Running the test above normally will result in the following log:

[percy] Percy is not running, disabling snapshots

When running with percy exec, and your project's PERCY_TOKEN, a new Percy build will be created and snapshots will be uploaded to your project.

$ export PERCY_TOKEN=[your-project-token]
$ percy exec -- [python test command]
[percy] Percy has started!
[percy] Created build #1: https://percy.io/[your-project]
[percy] Snapshot taken "Python example"
[percy] Stopping percy...
[percy] Finalized build #1: https://percy.io/[your-project]
[percy] Done!

Configuration

percy_snapshot(driver, name[, **kwargs])

Migrating Config

If you have a previous Percy configuration file, migrate it to the newest version with the config:migrate command:

$ percy config:migrate
Comments
  • ⬆️ Update httpretty requirement from ==1.0.* to ==1.1.*

    ⬆️ Update httpretty requirement from ==1.0.* to ==1.1.*

    Updates the requirements on httpretty to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    ⬆️⬇️ dependencies ❄️ on ice 🍞 stale 
    opened by dependabot[bot] 9
  • ImportError: cannot import name 'percySnapshot' from 'percy'

    ImportError: cannot import name 'percySnapshot' from 'percy'

    Hey,

    after following the steps to setup, I get the following error when trying to run the test: ImportError: cannot import name 'percySnapshot' from 'percy' (/Users/***/PycharmProjects/test3/lib/python3.7/site-packages/percy/init.py)

    Tried to run it with command: npx percy exec -- python mytest.py

    Any idea how to solve it? Thanks for your help.

    🍞 stale 
    opened by ES-moonfare 8
  • percySnapshot fails silently

    percySnapshot fails silently

    Right now there's not really a way to know that a call to percySnapshot succeeds in the test run.

    I think that a default behaviour of failing when the connection fails would make things easier to debug in general

    🍞 stale 
    opened by rtpg 4
  • ⬆️ Update selenium requirement from ==3.* to ==4.*

    ⬆️ Update selenium requirement from ==3.* to ==4.*

    Updates the requirements on selenium to permit the latest version.

    Release notes

    Sourced from selenium's releases.

    Selenium 4.0.0

    Changelog

    For each component's detailed changelog, please check:

    Commits in this release

    • 3a21814679 - [js] bump JS to 4.0.0 :: AutomatedTester
    • 3782f97e75 - [js] Fixes cdp for Chrome and Firefox (#9909) :: Sri Harsha
    • 614a408873 - [py] Bump python to 4.0.0 :: AutomatedTester
    • b97b4069c0 - [dotnet] Fix typo committed by mistake :: Jim Evans
    • ee723da7be - Bump to latest edge release :: Simon Mavi Stewart
    • 77e99f6810 - Add a toJson method to Browser so it becomes easier to use in Capabilities :: Simon Mavi Stewart
    • fcab887059 - [build] Add cdp 95 to python and JS :: AutomatedTester
    • 87e3833c04 - [python] Remove Edge legacy options. (#9908) :: Brandon Walderman
    • 81cf02791a - [dotnet] Update CHANGELOG with last changes :: Jim Evans
    • e41fc34446 - [dotnet] Fix CDP error getting body of redirect responses :: Jim Evans
    • 21163d6085 - Update Java changelog for 4.0.0 :: Simon Mavi Stewart
    • b00c95823c - Use vendor-specific method names for additional Chromium options. (#9906) :: Brandon Walderman
    • fce8ce05cd - [rb] update changelog and bump version for 4.0.0 :: titusfortner
    • 9c13607c98 - [dotnet] Update version resources and CHANGELOG for 4.0.0 release :: Jim Evans
    • eb4c4fc1ba - [dotnet] Add constructor for creating a Cookie instance with all optional arguments (#9361) :: Puja Jagani
    • e6cd2a8df1 - [dotnet] Add infratructure for previously unsupported interaction types :: Jim Evans
    • 5632da3fed - [dotnet] Making SlowLoadableComponent more exentsible :: Jim Evans
    • 54aba4c7dd - [dotnet] SlowLoadableComponent ignores UnableToLoadMessage :: elgatov
    • d3b35ef25f - [dotnet] Remove Edge Legacy options. :: Brandon Walderman
    • 9b1d5f22f8 - [dotnet] Add CDP support for Chromium 95 :: Jim Evans
    • 7f29755e37 - [dotnet] Add ability to monitor DOM mutations :: Jim Evans
    • 11934cfe12 - Closes #9689 jcip for Apache 2 License into selenium source :: Amil Uslu
    • c0963266d5 - Expected condition for checking attribute value (#9881) :: Joe Schulte
    • b8de36fdc3 - [py] implement relative locator for find_element (#9902) :: Titus
    • 18e1d42956 - [grid] Improving Relay service description for docs :: Diego Molina
    • ed5dff7254 - [java] Deprecating USE_CHROMIUM so we can remove it after 4.0 :: Diego Molina
    • dc555bbabc - [js] Updating rules_nodejs to 4.4.0 :: Sri Harsha
    • 776cd675f1 - Update JRuby to 9.3 to support Ruby 2.6 syntax :: Alex Rodionov
    • 48fc40dcdd - Ensure Pry is loaded when running rb:console target :: Alex Rodionov
    • d456395629 - Revert "Remove JRuby-specifiy SocketPoller#listening?" :: Alex Rodionov
    • c9a2ef6a88 - Improve DevTools request interception test by loading different JS :: Alex Rodionov
    • 94c8c111d6 - [dotnet] Restoring protected ElementFactory property :: Jim Evans
    • e1e690cf57 - Add Chrome 95 in selenium-devtools gem :: Alex Rodionov
    • cb873db98e - Amend default node config to allow users to override event bus flags :: Simon Mavi Stewart

    ... (truncated)

    Commits
    • 3a21814 [js] bump JS to 4.0.0
    • 3782f97 [js] Fixes cdp for Chrome and Firefox (#9909)
    • 614a408 [py] Bump python to 4.0.0
    • b97b406 [dotnet] Fix typo committed by mistake
    • ee723da Bump to latest edge release
    • 77e99f6 Add a toJson method to Browser so it becomes easier to use in Capabilities
    • fcab887 [build] Add cdp 95 to python and JS
    • 87e3833 [python] Remove Edge legacy options. (#9908)
    • 81cf027 [dotnet] Update CHANGELOG with last changes
    • e41fc34 [dotnet] Fix CDP error getting body of redirect responses
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    ⬆️⬇️ dependencies 🍞 stale 
    opened by dependabot[bot] 3
  • functools.cache is only available on python 3.9

    functools.cache is only available on python 3.9

    meta-data in setup.py says compatible with python 3.6, 3.7, 3.8, 3.9

    however, you added a dependency on functools.cache here: https://github.com/percy/percy-selenium-python/commit/2934f121cc63ae039052405a0a2b7c15cec9412d

    this makes import break in anything before python 3.9

    recommend either:

    1- update meta-data to accurately say compatible only with 3.9+

    2- use functools.lru_cache (this is probably better anyway because .cache is unbounded)

    also, you might want to consider adding tox to your CI https://tox.readthedocs.io/en/latest/ so build are validated against multiple versions of python

    opened by kurtbrose 3
  • percySnapshot(browser=...) changed to percySnapshot(driver=...)

    percySnapshot(browser=...) changed to percySnapshot(driver=...)

    just a heads up -- not a big deal but we stubbed our toe

    percySnapshot I guess is being kept for backwards compatibility

    you might want to also have a signature transformation

    def percySnapshot(browser, *a, **kw):
         return percy_snapshot(driver=browser, *a, **kw)
    

    or not... we just went straight to percy_snapshot(driver=...) but might save someone else from hitting this if they are passing browser as a kwarg

    opened by kurtbrose 2
  • Broken support for Selenium Chrome Webdriver

    Broken support for Selenium Chrome Webdriver

    In the envInfo function it assumes that a browserVersion key is available on the webdriver.capabilities dict. When using the Chrome webdriver browserVersion is not available.

    While the code does use dict.get to, I assume, avoid a KeyError exception. It does not properly handle the case in which dict.get does not find the requested key and returns the default None. What ends up happening when using Chrome is you get a vague error from the code trying to concatenate None to a string. Would have been better to just use the standard dict get item method (dict[key]) and get the key error.

    It would be nice if you could fix this specific issue, but to help find/avoid other issues it would be good if you could test against the chrome webdriver in addition to firefox.

    opened by steven-cutting 2
  • build(deps): bump lodash from 4.17.15 to 4.17.19

    build(deps): bump lodash from 4.17.15 to 4.17.19

    Bumps lodash from 4.17.15 to 4.17.19.

    Release notes

    Sourced from lodash's releases.

    4.17.16

    Commits
    Maintainer changes

    This version was pushed to npm by mathias, a new releaser for lodash since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    ⬆️⬇️ dependencies 
    opened by dependabot[bot] 1
  • ⬆️👷 Bump actions/stale from 5 to 6

    ⬆️👷 Bump actions/stale from 5 to 6

    Bumps actions/stale from 5 to 6.

    Release notes

    Sourced from actions/stale's releases.

    v6.0.0

    :warning: Breaking change :warning:

    Issues/PRs default close-issue-reason is now not_planned(#789)

    V5.2.0

    Features: New option include-only-assigned enables users to process only issues/PRs that are already assigned. If there is no assignees and this option is set, issue will not be processed per: issue/596

    Fixes: Fix date comparison edge case PR/816

    Dependency Updates: PR/812

    Fix issue when days-before-close is more than days-before-stale

    fixes a bug introduced in #717

    fixed in #775

    v5.1.0

    [5.1.0]

    Don't process stale issues right after they're marked stale Add close-issue-reason option #764#772 Various dependabot/dependency updates

    Changelog

    Sourced from actions/stale's changelog.

    Changelog

    [6.0.0]

    :warning: Breaking change :warning:

    Issues/PRs default close-issue-reason is now not_planned(#789)

    [5.1.0]

    Don't process stale issues right after they're marked stale [Add close-issue-reason option]#764#772 Various dependabot/dependency updates

    4.1.0 (2021-07-14)

    Features

    4.0.0 (2021-07-14)

    Features

    Bug Fixes

    • dry-run: forbid mutations in dry-run (#500) (f1017f3), closes #499
    • logs: coloured logs (#465) (5fbbfba)
    • operations: fail fast the current batch to respect the operations limit (#474) (5f6f311), closes #466
    • label comparison: make label comparison case insensitive #517, closes #516
    • filtering comments by actor could have strange behavior: "stale" comments are now detected based on if the message is the stale message not who made the comment(#519), fixes #441, #509, #518

    Breaking Changes

    • The options skip-stale-issue-message and skip-stale-pr-message were removed. Instead, setting the options stale-issue-message and stale-pr-message will be enough to let the stale workflow add a comment. If the options are unset, a comment will not be added which was the equivalent of setting skip-stale-issue-message to true.
    • The operations-per-run option will be more effective. After migrating, you could face a failed-fast process workflow if you let the default value (30) or set it to a small number. In that case, you will see a warning at the end of the logs (if enabled) indicating that the workflow was stopped sooner to avoid consuming too much API calls. In most cases, you can just increase this limit to make sure to process everything in a single run.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    ⬆️⬇️ dependencies 
    opened by dependabot[bot] 0
  • ⬆️👷 Bump actions/setup-python from 3 to 4

    ⬆️👷 Bump actions/setup-python from 3 to 4

    Bumps actions/setup-python from 3 to 4.

    Release notes

    Sourced from actions/setup-python's releases.

    v4.0.0

    What's Changed

    • Support for python-version-file input: #336

    Example of usage:

    - uses: actions/[email protected]
      with:
        python-version-file: '.python-version' # Read python version from a file
    - run: python my_script.py
    

    There is no default python version for this setup-python major version, the action requires to specify either python-version input or python-version-file input. If the python-version input is not specified the action will try to read required version from file from python-version-file input.

    • Use pypyX.Y for PyPy python-version input: #349

    Example of usage:

    - uses: actions/[email protected]
      with:
        python-version: 'pypy3.9' # pypy-X.Y kept for backward compatibility
    - run: python my_script.py
    
    • RUNNER_TOOL_CACHE environment variable is equal AGENT_TOOLSDIRECTORY: #338

    • Bugfix: create missing pypyX.Y symlinks: #347

    • PKG_CONFIG_PATH environment variable: #400

    • Added python-path output: #405 python-path output contains Python executable path.

    • Updated zeit/ncc to vercel/ncc package: #393

    • Bugfix: fixed output for prerelease version of poetry: #409

    • Made pythonLocation environment variable consistent for Python and PyPy: #418

    • Bugfix for 3.x-dev syntax: #417

    • Other improvements: #318 #396 #384 #387 #388

    Update actions/cache version to 2.0.2

    In scope of this release we updated actions/cache package as the new version contains fixes related to GHES 3.5 (actions/setup-python#382)

    Add "cache-hit" output and fix "python-version" output for PyPy

    This release introduces new output cache-hit (actions/setup-python#373) and fix python-version output for PyPy (actions/setup-python#365)

    The cache-hit output contains boolean value indicating that an exact match was found for the key. It shows that the action uses already existing cache or not. The output is available only if cache is enabled.

    ... (truncated)

    Commits
    • d09bd5e fix: 3.x-dev can install a 3.y version (#417)
    • f72db17 Made env.var pythonLocation consistent for Python and PyPy (#418)
    • 53e1529 add support for python-version-file (#336)
    • 3f82819 Fix output for prerelease version of poetry (#409)
    • 397252c Update zeit/ncc to vercel/ncc (#393)
    • de977ad Merge pull request #412 from vsafonkin/v-vsafonkin/fix-poetry-cache-test
    • 22c6af9 Change PyPy version to rebuild cache
    • 081a3cf Merge pull request #405 from mayeut/interpreter-path
    • ff70656 feature: add a python-path output
    • fff15a2 Use pypyX.Y for PyPy python-version input (#349)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    ⬆️⬇️ dependencies 
    opened by dependabot[bot] 0
  • ⬆️👷 Bump actions/stale from 4 to 5

    ⬆️👷 Bump actions/stale from 4 to 5

    Bumps actions/stale from 4 to 5.

    Release notes

    Sourced from actions/stale's releases.

    v5.0.0

    Features

    v4.1.0

    Features

    Changelog

    Sourced from actions/stale's changelog.

    Changelog

    Commits
    • 3cc1237 Merge pull request #670 from actions/thboop/node16upgrade
    • 76e9fbc update node version
    • 6467b96 Update default runtime to node16
    • 8af6051 build(deps-dev): bump jest-circus from 27.2.0 to 27.4.6 (#665)
    • 7a7efca Fix per issue operation count (#662)
    • 04a1828 build(deps-dev): bump ts-jest from 27.0.5 to 27.1.2 (#641)
    • 65ca395 build(deps-dev): bump eslint-plugin-jest from 24.4.2 to 25.3.2 (#639)
    • eee276c build(deps-dev): bump prettier from 2.4.1 to 2.5.1 (#628)
    • 6c2f9f3 Merge pull request #640 from dmitry-shibanov/v-dmshib/fix-check-dist
    • 37323f1 fix check-dist.yml
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    ⬆️⬇️ dependencies 
    opened by dependabot[bot] 0
  • ⬆️👷 Bump actions/stale from 6 to 7

    ⬆️👷 Bump actions/stale from 6 to 7

    Bumps actions/stale from 6 to 7.

    Release notes

    Sourced from actions/stale's releases.

    v7.0.0

    ⚠️ This version contains breaking changes ⚠️

    What's Changed

    Breaking Changes

    • In this release we prevent this action from managing the stale label on items included in exempt-issue-labels and exempt-pr-labels
    • We decided that this is outside of the scope of this action, and to be left up to the maintainer

    New Contributors

    Full Changelog: https://github.com/actions/stale/compare/v6...v7.0.0

    v6.0.1

    Update @​actions/core to 1.10.0 #839

    Full Changelog: https://github.com/actions/stale/compare/v6.0.0...v6.0.1

    Changelog

    Sourced from actions/stale's changelog.

    Changelog

    [7.0.0]

    :warning: Breaking change :warning:

    [6.0.1]

    Update @​actions/core to v1.10.0 (#839)

    [6.0.0]

    :warning: Breaking change :warning:

    Issues/PRs default close-issue-reason is now not_planned(#789)

    [5.1.0]

    Don't process stale issues right after they're marked stale [Add close-issue-reason option]#764#772 Various dependabot/dependency updates

    4.1.0 (2021-07-14)

    Features

    4.0.0 (2021-07-14)

    Features

    Bug Fixes

    • dry-run: forbid mutations in dry-run (#500) (f1017f3), closes #499
    • logs: coloured logs (#465) (5fbbfba)
    • operations: fail fast the current batch to respect the operations limit (#474) (5f6f311), closes #466
    • label comparison: make label comparison case insensitive #517, closes #516
    • filtering comments by actor could have strange behavior: "stale" comments are now detected based on if the message is the stale message not who made the comment(#519), fixes #441, #509, #518

    Breaking Changes

    ... (truncated)

    Commits
    • 6f05e42 draft release for v7.0.0 (#888)
    • eed91cb Update how stale handles exempt items (#874)
    • 10dc265 Merge pull request #880 from akv-platform/update-stale-repo
    • 9c1eb3f Update .md files and allign build-test.yml with the current test.yml
    • bc357bd Update .github/workflows/release-new-action-version.yml
    • 690ede5 Update .github/ISSUE_TEMPLATE/bug_report.md
    • afbcabf Merge branch 'main' into update-stale-repo
    • e364411 Update name of codeql.yml file
    • 627cef3 fix print outputs step (#859)
    • 975308f Merge pull request #876 from jongwooo/chore/use-cache-in-check-dist
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    ⬆️⬇️ dependencies 
    opened by dependabot[bot] 0
Releases(v1.0.5)
  • v1.0.5(Mar 29, 2022)

    🐛 Bug Fixes

    • 🐛 Loosen selenium dependency requirement (#27) @Robdel12

    🏗 Maintenance

    • 👷⬆️⬇️ Add Dependabot (#21) @Robdel12
    • 🧹 Fix stale issue label (#20) @Robdel12
    • 📝 Update snapshot options docs in README (#19) @Robdel12
    • 🧹 Add stale issues/PRs action, update releaser config for new labels (#18) @Robdel12

    ⬆️⬇️ Dependency Updates

    • ⬆️👷 Bump actions/cache from 2 to 3 (#26) @dependabot
    • ⬆️👷 Bump actions/checkout from 2 to 3 (#25) @dependabot
    • ⬆️👷 Bump actions/setup-python from 2 to 3 (#24) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • v1.0.4(Feb 25, 2021)

  • v1.0.3(Feb 12, 2021)

  • v1.0.2(Feb 9, 2021)

    ✨ Enhancements

    • ✨ Document & use snake_case snapshot options (#12) @wwilsman

    🐛 Bug Fixes

    • 🐛 Use functools.lru_cache (#14) @wwilsman
    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Feb 3, 2021)

  • v1.0.0(Feb 3, 2021)

Owner
Percy
Your all-in-one visual review platform.
Percy
Generic automation framework for acceptance testing and RPA

Robot Framework Introduction Installation Example Usage Documentation Support and contact Contributing License Introduction Robot Framework is a gener

Robot Framework 7.7k Jan 07, 2023
Automated mouse clicker script using PyAutoGUI and Typer.

clickpy Automated mouse clicker script using PyAutoGUI and Typer. This app will randomly click your mouse between 1 second and 3 minutes, to prevent y

Joe Fitzgibbons 0 Dec 01, 2021
A simple tool to test internet stability.

pingtest Description A personal project for testing internet stability, intended for use in Linux and Windows.

chris 0 Oct 17, 2021
Testing - Instrumenting Sanic framework with Opentelemetry

sanic-otel-splunk Testing - Instrumenting Sanic framework with Opentelemetry Test with python 3.8.10, sanic 20.12.2 Step to instrument pip install -r

Donler 1 Nov 26, 2021
A Simple Unit Test Matcher Library for Python 3

pychoir - Python Test Matchers for humans Super duper low cognitive overhead matching for Python developers reading or writing tests. Implemented in p

Antti Kajander 15 Sep 14, 2022
XSSearch - A comprehensive reflected XSS tool built on selenium framework in python

XSSearch A Comprehensive Reflected XSS Scanner XSSearch is a comprehensive refle

Sathyaprakash Sahoo 49 Oct 18, 2022
Pytest support for asyncio.

pytest-asyncio: pytest support for asyncio pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest. asy

pytest-dev 1.1k Jan 02, 2023
catsim - Computerized Adaptive Testing Simulator

catsim - Computerized Adaptive Testing Simulator Quick start catsim is a computerized adaptive testing simulator written in Python 3.4 (with modificat

Nguyễn Văn Anh Tuấn 1 Nov 29, 2021
PacketPy is an open-source solution for stress testing network devices using different testing methods

PacketPy About PacketPy is an open-source solution for stress testing network devices using different testing methods. Currently, there are only two c

4 Sep 22, 2022
Asyncio http mocking. Similar to the responses library used for 'requests'

aresponses an asyncio testing server for mocking external services Features Fast mocks using actual network connections allows mocking some types of n

93 Nov 16, 2022
API mocking with Python.

apyr apyr (all lowercase) is a simple & easy to use mock API server. It's great for front-end development when your API is not ready, or when you are

Umut Seven 55 Nov 25, 2022
Automatically mock your HTTP interactions to simplify and speed up testing

VCR.py 📼 This is a Python version of Ruby's VCR library. Source code https://github.com/kevin1024/vcrpy Documentation https://vcrpy.readthedocs.io/ R

Kevin McCarthy 2.3k Jan 01, 2023
This is a bot that can type without any assistance and have incredible speed.

BulldozerType This is a bot that can type without any assistance and have incredible speed. This bot currently only works on the site https://onlinety

1 Jan 03, 2022
pytest plugin for distributed testing and loop-on-failures testing modes.

xdist: pytest distributed testing plugin The pytest-xdist plugin extends pytest with some unique test execution modes: test run parallelization: if yo

pytest-dev 1.1k Dec 30, 2022
Declarative HTTP Testing for Python and anything else

Gabbi Release Notes Gabbi is a tool for running HTTP tests where requests and responses are represented in a declarative YAML-based form. The simplest

Chris Dent 139 Sep 21, 2022
A grab-bag of nifty pytest plugins

A goody-bag of nifty plugins for pytest OS Build Coverage Plugin Description Supported OS pytest-server-fixtures Extensible server-running framework w

Man Group 492 Jan 03, 2023
Flexible test automation for Python

Nox - Flexible test automation for Python nox is a command-line tool that automates testing in multiple Python environments, similar to tox. Unlike to

Stargirl Flowers 941 Jan 03, 2023
Load Testing ML Microservices for Robustness and Scalability

The demo is aimed at getting started with load testing a microservice before taking it to production. We use FastAPI microservice (to predict weather) and Locust to load test the service (locally or

Emmanuel Raj 13 Jul 05, 2022
Fail tests that take too long to run

GitHub | PyPI | Issues pytest-fail-slow is a pytest plugin for making tests fail that take too long to run. It adds a --fail-slow DURATION command-lin

John T. Wodder II 4 Nov 27, 2022
Redis fixtures and fixture factories for Pytest.

Redis fixtures and fixture factories for Pytest.This is a pytest plugin, that enables you to test your code that relies on a running Redis database. It allows you to specify additional fixtures for R

Clearcode 86 Dec 23, 2022