コード例 #1
0
def test_devenv(temp_repo: Repo):
    lib_requirements = [
        "click",
        "flask",
        "werkzeug",
        "consolekit",
        "requests",
        "apeye",
    ]

    test_requirements = [
        "pytest",
        "hypothesis",
    ]

    repo_path = PathPlus(temp_repo.path)
    (repo_path / "requirements.txt").write_lines(lib_requirements)

    (repo_path / "tests").mkdir()
    (repo_path / "tests/requirements.txt").write_lines(test_requirements)

    with in_directory(temp_repo.path):
        runner = CliRunner()
        result: Result = runner.invoke(devenv)
        assert result.exit_code == 0
        assert result.stdout == 'Successfully created development virtualenv.\n'

    # Check list of packages in virtualenv
    venv_dir = repo_path / "venv"

    if sys.platform == "win32":
        version_dirs = [(venv_dir / "Lib")]
    elif PYPY:
        version_dirs = [venv_dir]
    else:
        version_dirs = list((venv_dir / "lib").glob("py*"))

    for version_dir in version_dirs:

        for package in lib_requirements:
            assert (version_dir / "site-packages" / package).is_dir()

        for package in test_requirements:
            assert (version_dir / "site-packages" / package).is_dir()

    assert len(version_dirs) == 1

    pyvenv_config: Dict[str, str] = read_pyvenv(venv_dir)

    assert "prompt" in pyvenv_config
    assert pyvenv_config["prompt"] == "(repo_helper_demo) "

    assert "repo_helper_devenv" in pyvenv_config
    assert pyvenv_config["repo_helper_devenv"] == __version__

    assert "virtualenv" in pyvenv_config

    assert "include-system-site-packages" in pyvenv_config
    assert not strtobool(pyvenv_config["include-system-site-packages"])
コード例 #2
0
def test_mkdevenv_no_lib_deps_dynamic(tmp_pathplus: PathPlus, capsys):
	test_requirements = [
			"pytest",
			"hypothesis",
			]

	(tmp_pathplus / "pyproject.toml").write_lines([
			"[build-system]",
			'requires = ["setuptools", "wheel"]',
			'',
			"[project]",
			"name = 'pyproject-devenv-demo'",
			"dynamic = ['dependencies']",
			])
	(tmp_pathplus / "requirements.txt").touch()

	(tmp_pathplus / "tests").mkdir()
	(tmp_pathplus / "tests/requirements.txt").write_lines(test_requirements)

	assert mkdevenv(tmp_pathplus, tmp_pathplus / "venv", verbosity=1, upgrade=False) == 0

	capout = capsys.readouterr()
	assert not capout.err
	assert "Installing library requirements" not in capout.out

	# Check list of packages in virtualenv
	venv_dir = tmp_pathplus / "venv"

	if PYPY:
		version_dirs = [venv_dir]
	elif sys.platform == "win32":
		version_dirs = [(venv_dir / "Lib")]
	else:
		version_dirs = list((venv_dir / "lib").glob("py*"))

	for version_dir in version_dirs:
		for package in test_requirements:
			assert (version_dir / "site-packages" / package).is_dir()

	assert len(version_dirs) == 1

	pyvenv_config: Dict[str, str] = read_pyvenv(venv_dir)

	assert "prompt" in pyvenv_config
	assert pyvenv_config["prompt"] == "(pyproject-devenv-demo) "

	assert "pyproject-devenv" in pyvenv_config
	assert pyvenv_config["pyproject-devenv"] == __version__

	assert "virtualenv" in pyvenv_config

	assert "include-system-site-packages" in pyvenv_config
	assert not strtobool(pyvenv_config["include-system-site-packages"])
コード例 #3
0
ファイル: acq_method.py プロジェクト: PyMassSpec/pyms-agilent
    def from_xml(cls, element):
        """
		Create a :class:`~.Device` object from an XML element.

		:param element: The XML element to parse the data from
		"""
        return cls(
            device_id=getattr(
                element, "{http://tempuri.org/DataFileReport.xsd}DeviceId"),
            display_name=element.DisplayName,
            rc_device=strtobool(str(element.IsRCDevice)),
        )
コード例 #4
0
    def format_required(self, required: str) -> bool:
        """
		Formats the ``:required:`` option.

		:param required:

		:rtype:

		.. versionadded:: 1.1.0
		"""

        return strtobool(required)
コード例 #5
0
    def from_xml(cls, element):
        """
		Create a :class:`~.Field` object from an XML element.

		:param element: The XML element to parse the data from
		"""

        return cls(name=str(element.Name),
                   display_name=str(element.DisplayName),
                   data_type=int(element.DataType),
                   units=str(element.Units),
                   field_type=str(element.FieldType),
                   overridden=strtobool(str(element.Overridden)),
                   value=element.Value.text)
コード例 #6
0
ファイル: validator.py プロジェクト: domdfcoding/configconfig
    def visit_bool(self, raw_config_vars: RawConfigVarsType) -> bool:
        """
		Used to validate and convert :class:`bool` values.

		:param raw_config_vars:
		"""

        obj = optional_getter(raw_config_vars, self.config_var,
                              self.config_var.required)

        if not isinstance(obj, (int, bool, str)):
            raise ValueError(
                f"'{self.config_var.__name__}' must be one of {(int, bool, str)}, "
                f"not {type(obj)}") from None

        return self.config_var.rtype(strtobool(obj))
コード例 #7
0
def test_testing_boolean_strings():
    assert isinstance(testing_boolean_values(), MarkDecorator)
    assert isinstance(testing_boolean_values().mark, Mark)
    assert "boolean_string, expected_boolean" in testing_boolean_values(
    ).mark.args
    assert testing_boolean_values(
    ).mark.args[0] == "boolean_string, expected_boolean"
    assert len(testing_boolean_values().mark.args[1]) == 28
    assert isinstance(testing_boolean_values().mark.args[1], list)
    assert isinstance(testing_boolean_values().mark.args[1][0], tuple)
    assert len(testing_boolean_values().mark.args[1][0]) == 2
    assert isinstance(testing_boolean_values().mark.args[1][0][0], bool)
    assert isinstance(testing_boolean_values().mark.args[1][0][1], bool)

    for value, expects in testing_boolean_values().mark.args[1]:
        assert strtobool(value) is expects
コード例 #8
0
ファイル: utils.py プロジェクト: PyMassSpec/mh_utils
def element_to_bool(val: Union[str, bool]) -> bool:
	"""
	Returns the boolean representation of ``val``.

	Values of ``-1`` are counted as :py:obj:`True` for the purposes of this function.

	:py:obj:`True` values are ``'y'``, ``'yes'``, ``'t'``, ``'true'``, ``'on'``, ``'1'``, ``1``, ``-1``, and ``'-1'``.

	:py:obj:`False` values are ``'n'``, ``'no'``, ``'f'``, ``'false'``, ``'off'``, ``'0'``, and ``0``.

	:raises: :py:exc:`ValueError` if 'val' is anything else.
	"""

	val = str(val).strip()
	if val == "-1":
		return True
	else:
		return bool(strtobool(val))
コード例 #9
0
def test_mkdevenv_verbose(tmp_pathplus: PathPlus, extra_args):
    lib_requirements = [
        "click",
        "flask",
        "werkzeug",
        "consolekit",
        "requests",
        "apeye",
    ]

    test_requirements = [
        "pytest",
        "hypothesis",
    ]

    (tmp_pathplus / "pyproject.toml").write_lines([
        "[build-system]",
        'requires = ["setuptools", "wheel"]',
        '',
        "[project]",
        "name = 'pyproject-devenv-demo'",
        "dynamic = ['dependencies']",
    ])
    (tmp_pathplus / "requirements.txt").write_lines(lib_requirements)

    (tmp_pathplus / "tests").mkdir()
    (tmp_pathplus / "tests/requirements.txt").write_lines(test_requirements)

    with in_directory(tmp_pathplus):
        runner = CliRunner()
        result: Result = runner.invoke(main, extra_args)
        assert result.exit_code == 0

    assert " Installing project requirements " in result.stdout
    assert " Installing test requirements " in result.stdout
    assert " Installing build requirements " in result.stdout
    assert "Successfully created development virtualenv." in result.stdout

    # Check list of packages in virtualenv
    venv_dir = tmp_pathplus / "venv"

    if PYPY:
        version_dirs = [venv_dir]
    elif sys.platform == "win32":
        version_dirs = [(venv_dir / "Lib")]
    else:
        version_dirs = list((venv_dir / "lib").glob("py*"))

    for version_dir in version_dirs:

        for package in lib_requirements:
            assert (version_dir / "site-packages" / package).is_dir()

        for package in test_requirements:
            assert (version_dir / "site-packages" / package).is_dir()

    assert len(version_dirs) == 1

    pyvenv_config: Dict[str, str] = read_pyvenv(venv_dir)

    assert "prompt" in pyvenv_config
    assert pyvenv_config["prompt"] == "(pyproject-devenv-demo) "

    assert "pyproject-devenv" in pyvenv_config
    assert pyvenv_config["pyproject-devenv"] == __version__

    assert "virtualenv" in pyvenv_config

    assert "include-system-site-packages" in pyvenv_config
    assert not strtobool(pyvenv_config["include-system-site-packages"])
コード例 #10
0
 def test_strtobool_errors(self, obj, expects):
     with pytest.raises(expects):
         strtobool(obj)
コード例 #11
0
 def test_strtobool(self, boolean_string, expected_boolean):
     assert strtobool(boolean_string) == expected_boolean
コード例 #12
0
def test_mkdevenv_no_build_deps(tmp_pathplus: PathPlus, capsys):
	lib_requirements = [
			"click",
			"flask",
			"werkzeug",
			"consolekit",
			"requests",
			"apeye",
			]

	test_requirements = [
			"pytest",
			"hypothesis",
			]

	(tmp_pathplus / "pyproject.toml").write_lines([
			"[project]",
			"name = 'pyproject-devenv-demo'",
			"dynamic = ['dependencies']",
			'',
			"[project.optional-dependencies]",
			"doc = ['sphinx']",
			'',
			])
	(tmp_pathplus / "requirements.txt").write_lines(lib_requirements)

	(tmp_pathplus / "tests").mkdir()
	(tmp_pathplus / "tests/requirements.txt").write_lines(test_requirements)

	assert mkdevenv(tmp_pathplus, tmp_pathplus / "venv", verbosity=2, upgrade=False) == 0

	capout = capsys.readouterr()
	assert not capout.err
	assert "Installing build requirements" not in capout.out

	# Check list of packages in virtualenv
	venv_dir = tmp_pathplus / "venv"

	if PYPY:
		version_dirs = [venv_dir]
	elif sys.platform == "win32":
		version_dirs = [(venv_dir / "Lib")]
	else:
		version_dirs = list((venv_dir / "lib").glob("py*"))

	for version_dir in version_dirs:

		for package in lib_requirements:
			assert (version_dir / "site-packages" / package).is_dir()

		for package in test_requirements:
			assert (version_dir / "site-packages" / package).is_dir()

	assert len(version_dirs) == 1

	pyvenv_config: Dict[str, str] = read_pyvenv(venv_dir)

	assert "prompt" in pyvenv_config
	assert pyvenv_config["prompt"] == "(pyproject-devenv-demo) "

	assert "pyproject-devenv" in pyvenv_config
	assert pyvenv_config["pyproject-devenv"] == __version__

	assert "virtualenv" in pyvenv_config

	assert "include-system-site-packages" in pyvenv_config
	assert not strtobool(pyvenv_config["include-system-site-packages"])