Giter VIP home page Giter VIP logo

pydriverr's Issues

Fix tests so they run on clean env

By default test "test__get_drivers_home_nok" fails if there is DRIVERS_HOME env created
Fix this test, so clean pull passes all tests

Design and implement release management process

If we want to release this package to pypi we need to be able to:

  • produce changelog on release
  • create named tags for release
  • have some release branch (is it needed?)
  • Put changelog and produced artifact to github page
  • put artifact and changelog to pypi

We need to have described release process with steps what should be done.

Some links:

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Other Branches

These updates are pending. To force PRs open, click the checkbox below.

  • chore(deps): update dependency pytest-icdiff to v0.9
  • fix(deps): update dependency packaging to v24

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/psv.yaml
  • actions/checkout v4
  • actions/setup-python v5
.github/workflows/release.yaml
  • actions/checkout v4
  • actions/setup-python v5
  • softprops/action-gh-release v2
.github/workflows/sv.yaml
  • actions/checkout v4
  • actions/setup-python v5
  • actions/upload-artifact v4
pep621
pyproject.toml
  • poetry >=0.12
poetry
pyproject.toml
  • python >=3.8.1, <4.0
  • packaging ^22.0
  • humanfriendly ^10.0
  • requests ^2.28.1
  • tabulate ^0.9.0
  • configobj ^5.0.6
  • click ^8.1.3
  • loguru ^0.6.0
  • yaspin ^2.2.0
  • pylint ^2.15.9
  • changelog-cli ^0.7.1
  • isort ^5.11.3
  • flake8 ^6.0.0
  • flake8-isort ^5.0.3
  • pytest ^8.0.0
  • pytest-mock ^3.10.0
  • pytest-cov ^5.0.0
  • requests-mock ^1.10.0
  • pytest-icdiff ^0.6
  • pytest-clarity ^1.0.1
  • flake8-black ^0.3.6
  • describerr ^0.2.1

  • Check this box to trigger a request for Renovate to run again on this repository

Do not check underlying system info when WebDriver class is init

More info added in TODO in webdriver.py

 def system_arch(self, system_arch: str):
        # TODO: what about arm arch?
        # TODO: this check doesn't make sense at this point. There are 2 scenarios for installation:
        # * specify os and arch during install - then we do not care about current system architecture so way
        #   fail the whole operation? This shouldn`t be run at the init of WebDriver class then
        # * do not specify system or arch - then we want to install webdriver for current os and arch. Then we would
        #   also need to be able to discover ARM arch and system name.
        if system_arch in ["x86_64", "AMD64"]:
            self._system_arch = "64"
        elif system_arch in ["i386", "i586", "32", "x86"]:
            self._system_arch = "32"
        else:
            self.support.exit(f"Unknown architecture: {system_arch}")
        logger.debug(f"Current's OS architecture string: {system_arch} -> {self._system_arch} bit")

Wrong file installed (sha512_sum) for operadirver

Steps to reproduce

  1. install opera driver
➜ pydriver install -d opera
Log file stored in: /tmp/pydriver.log
Requested driver not found in cache
Installed operadriver:
VERSION: 88.0.4324.104
OS: linux
ARCHITECTURE: 64
  1. Show installed drivers
➜ pydriver show-installed         
Log file stored in: /tmp/pydriver.log
    DRIVER TYPE    VERSION        OS       ARCHITECTURE  FILENAME      CHECKSUM
--  -------------  -------------  -----  --------------  ------------  --------------------------------
 0  gecko          0.29.0         linux              64  geckodriver   dccba99f3e2cbc39db9dd27741c74099
 1  chrome         89.0.4389.23   linux              64  chromedriver  68e3e7b54e8adf3f0d505547f74a7b25
 2  opera          88.0.4324.104  linux              64  sha512_sum    a809b6a4e00a5910a60fc183782d5eef

Zip file for opera contains 2 files: the driver and the checksum.

Introduce API for running commands in python scripts

This comes from #42 (comment)
Click always run SystemExit exception at the end of command execution. This doesn't allow using pydriver in python scripts as it will terminate script. Scipts API would be like:

from pydriver import pydriver

def show_available(driver_type):
  try:
    pydriver.show_available(["-d", driver_type])
  except SystemExit:
    call remianing stuff

Refactor tests

Document tests by docstrings
Fix code issues like those mentioned in PR !35
Fix TODO

Fix double prints when more than 1 drivers is updated

Fix double prints when more than 1 drivers is updated:

➜ pydriver update -d chrome -d gecko
Log file stored in: /tmp/pydriver.log
chromedriver is already in newest version. Local: 89.0.4389.23, remote: 89.0.4389.23
Log file stored in: /tmp/pydriver.log
Log file stored in: /tmp/pydriver.log
geckodriver is already in newest version. Local: 0.29.0, remote: 0.29.0
geckodriver is already in newest version. Local: 0.29.0, remote: 0.29.0

Make sure it works on Windows

  • follow readme in order to make sure project can be setup on windows
  • Run all unit tests to make sure it works on windows
  • Fix all errors

Add update commands

pydriver update gecko - update only gecko driver
pydriver update - updates all installed drivers

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.