Skip to content

Commit

Permalink
Merge branch 'master' into drop-support-for-end-of-life-python-3-6
Browse files Browse the repository at this point in the history
  • Loading branch information
HorlogeSkynet authored Jun 6, 2022
2 parents b02318f + 6f3c650 commit e348a2e
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 11 deletions.
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: 2
updates:

- package-ecosystem: "github-actions"
commit-message:
include: "scope"
prefix: "Actions"
directory: "/"
labels:
- "enhancement"
schedule:
interval: "weekly"
6 changes: 3 additions & 3 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
- uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v3

- name: Install tox
run: python -m pip install tox
Expand All @@ -38,7 +38,7 @@ jobs:
- uses: actions/checkout@v2

- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v2
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python }}

Expand All @@ -63,7 +63,7 @@ jobs:
- uses: codecov/codecov-action@v1

- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v3
with:
python-version: 3.x

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- uses: actions/checkout@v2
with:
ref: ${{ github.event.inputs.tag }}
- uses: actions/setup-python@v2
- uses: actions/setup-python@v3
with:
python-version: 3.x
- shell: bash
Expand Down
9 changes: 9 additions & 0 deletions src/distro/distro.py
Original file line number Diff line number Diff line change
Expand Up @@ -898,6 +898,15 @@ def version(self, pretty: bool = False, best: bool = False) -> str:
if self.uname_attr("id").startswith("aix"):
# On AIX platforms, prefer oslevel command output.
versions.insert(0, self.oslevel_info())
elif self.id() == "debian" or "debian" in self.like().split():
# On Debian-like, add debian_version file content to candidates list.
try:
with open(
os.path.join(self.etc_dir, "debian_version"), encoding="ascii"
) as fp:
versions.append(fp.readline().rstrip())
except FileNotFoundError:
pass
version = ""
if best:
# This algorithm uses the last version in priority order that has
Expand Down
21 changes: 21 additions & 0 deletions tests/resources/distros/debian10/bin/lsb_release
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash
#
# lsb_release command for testing the ld module.
# Only the -a option is supported.
#
# This version of the lsb_release command works without a corresponding
# etc/lsb-release file.
#

if [[ "$@" != "-a" ]]; then
echo "Usage: lsb_release -a"
exit 2
fi

echo "No LSB modules are available."
echo "Distributor ID: Debian"
echo "Description: Debian GNU/Linux 10 (buster)"
echo "Release: 10"
echo "Codename: buster"

exit 0
1 change: 1 addition & 0 deletions tests/resources/distros/debian10/etc/debian_version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
10.11
9 changes: 9 additions & 0 deletions tests/resources/distros/debian10/etc/os-release
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
39 changes: 32 additions & 7 deletions tests/test_distro.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,11 +138,10 @@ def _setup_for_distro(self, distro_root: str) -> None:
class TestOSRelease:
def setup_method(self, test_method: FunctionType) -> None:
dist = test_method.__name__.split("_")[1]
os_release = os.path.join(DISTROS_DIR, dist, "etc", "os-release")
self.distro = distro.LinuxDistribution(
include_lsb=False,
os_release_file=os_release,
distro_release_file="path-to-non-existing-file",
root_dir=os.path.join(DISTROS_DIR, dist),
)

def _test_outcome(self, outcome: Dict[str, str]) -> None:
Expand Down Expand Up @@ -217,11 +216,23 @@ def test_debian8_os_release(self) -> None:
"pretty_name": "Debian GNU/Linux 8 (jessie)",
"version": "8",
"pretty_version": "8 (jessie)",
"best_version": "8",
"best_version": "8.2",
"codename": "jessie",
}
self._test_outcome(desired_outcome)

def test_debian10_os_release(self) -> None:
desired_outcome = {
"id": "debian",
"name": "Debian GNU/Linux",
"pretty_name": "Debian GNU/Linux 10 (buster)",
"version": "10",
"pretty_version": "10 (buster)",
"best_version": "10.11",
"codename": "buster",
}
self._test_outcome(desired_outcome)

def test_fedora19_os_release(self) -> None:
desired_outcome = {
"id": "fedora",
Expand Down Expand Up @@ -346,7 +357,7 @@ def test_raspbian7_os_release(self) -> None:
"pretty_name": "Raspbian GNU/Linux 7 (wheezy)",
"version": "7",
"pretty_version": "7 (wheezy)",
"best_version": "7",
"best_version": "7.1",
"like": "debian",
"codename": "wheezy",
}
Expand All @@ -359,7 +370,7 @@ def test_raspbian8_os_release(self) -> None:
"pretty_name": "Raspbian GNU/Linux 8 (jessie)",
"version": "8",
"pretty_version": "8 (jessie)",
"best_version": "8",
"best_version": "8.0",
"like": "debian",
"codename": "jessie",
}
Expand Down Expand Up @@ -1230,6 +1241,20 @@ def test_debian8_release(self) -> None:
self._test_outcome(desired_outcome)
self._test_non_existing_release_file()

def test_debian10_release(self) -> None:
desired_outcome = {
"id": "debian",
"name": "Debian GNU/Linux",
"pretty_name": "Debian GNU/Linux 10 (buster)",
"version": "10",
"pretty_version": "10 (buster)",
"best_version": "10.11",
"codename": "buster",
"major_version": "10",
}
self._test_outcome(desired_outcome)
self._test_non_existing_release_file()

def test_exherbo_release(self) -> None:
desired_outcome = {
"id": "exherbo",
Expand Down Expand Up @@ -1448,7 +1473,7 @@ def test_raspbian7_release(self) -> None:
"pretty_name": "Raspbian GNU/Linux 7 (wheezy)",
"version": "7",
"pretty_version": "7 (wheezy)",
"best_version": "7",
"best_version": "7.1",
"like": "debian",
"codename": "wheezy",
"major_version": "7",
Expand All @@ -1463,7 +1488,7 @@ def test_raspbian8_release(self) -> None:
"pretty_name": "Raspbian GNU/Linux 8 (jessie)",
"version": "8",
"pretty_version": "8 (jessie)",
"best_version": "8",
"best_version": "8.0",
"like": "debian",
"codename": "jessie",
"major_version": "8",
Expand Down

0 comments on commit e348a2e

Please sign in to comment.