Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions activestorage/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
from .active import Active

from importlib.metadata import version
from importlib.metadata import PackageNotFoundError

# this is used only by Readthedocs
__version__ = "0.4.0"

try:
__version__ = version("PyActiveStorage")
except PackageNotFoundError as exc:
msg = (
"PyActiveStorage package not found, please run `pip install -e .` before "
"importing the package."
)
raise PackageNotFoundError(
msg,
) from exc
1 change: 1 addition & 0 deletions environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ dependencies:
- pytest-cov >=2.10.1
- pytest-html !=2.1.0
- pytest-metadata >=1.5.1
- pytest-mock
- pytest-xdist
# docs
- autodocsumm
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ test = [
"pytest-cov>=2.10.1",
"pytest-html!=2.1.0",
"pytest-metadata>=1.5.1",
"pytest-mock",
"pytest-xdist",
"dask",
"moto",
Expand Down
29 changes: 29 additions & 0 deletions tests/test_version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
"""Test that activestorage.__version__ returns a version number."""

from __future__ import annotations

import importlib
import re
from importlib.metadata import PackageNotFoundError
from typing import TYPE_CHECKING

import pytest

import activestorage

if TYPE_CHECKING:
from pytest_mock import MockerFixture


def test_version():
assert re.match(r"^\d+\.\d+\.\d+\S*$", activestorage.__version__)


def test_version_package_not_found_fail(mocker: MockerFixture) -> None:
mocker.patch(
"importlib.metadata.version",
side_effect=PackageNotFoundError("PyActiveStorage"),
)
msg = r"PyActiveStorage package not found"
with pytest.raises(PackageNotFoundError, match=re.escape(msg)):
importlib.reload(activestorage)
Loading