Skip to content

Commit e348a2e

Browse files
Merge branch 'master' into drop-support-for-end-of-life-python-3-6
2 parents b02318f + 6f3c650 commit e348a2e

File tree

8 files changed

+88
-11
lines changed

8 files changed

+88
-11
lines changed

.github/dependabot.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
version: 2
2+
updates:
3+
4+
- package-ecosystem: "github-actions"
5+
commit-message:
6+
include: "scope"
7+
prefix: "Actions"
8+
directory: "/"
9+
labels:
10+
- "enhancement"
11+
schedule:
12+
interval: "weekly"

.github/workflows/ci.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
- uses: actions/checkout@v2
1414

1515
- name: Set up Python
16-
uses: actions/setup-python@v2
16+
uses: actions/setup-python@v3
1717

1818
- name: Install tox
1919
run: python -m pip install tox
@@ -38,7 +38,7 @@ jobs:
3838
- uses: actions/checkout@v2
3939

4040
- name: Set up Python ${{ matrix.python }}
41-
uses: actions/setup-python@v2
41+
uses: actions/setup-python@v3
4242
with:
4343
python-version: ${{ matrix.python }}
4444

@@ -63,7 +63,7 @@ jobs:
6363
- uses: codecov/codecov-action@v1
6464

6565
- name: Set up Python
66-
uses: actions/setup-python@v2
66+
uses: actions/setup-python@v3
6767
with:
6868
python-version: 3.x
6969

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
- uses: actions/checkout@v2
1616
with:
1717
ref: ${{ github.event.inputs.tag }}
18-
- uses: actions/setup-python@v2
18+
- uses: actions/setup-python@v3
1919
with:
2020
python-version: 3.x
2121
- shell: bash

src/distro/distro.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -898,6 +898,15 @@ def version(self, pretty: bool = False, best: bool = False) -> str:
898898
if self.uname_attr("id").startswith("aix"):
899899
# On AIX platforms, prefer oslevel command output.
900900
versions.insert(0, self.oslevel_info())
901+
elif self.id() == "debian" or "debian" in self.like().split():
902+
# On Debian-like, add debian_version file content to candidates list.
903+
try:
904+
with open(
905+
os.path.join(self.etc_dir, "debian_version"), encoding="ascii"
906+
) as fp:
907+
versions.append(fp.readline().rstrip())
908+
except FileNotFoundError:
909+
pass
901910
version = ""
902911
if best:
903912
# This algorithm uses the last version in priority order that has
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
#
3+
# lsb_release command for testing the ld module.
4+
# Only the -a option is supported.
5+
#
6+
# This version of the lsb_release command works without a corresponding
7+
# etc/lsb-release file.
8+
#
9+
10+
if [[ "$@" != "-a" ]]; then
11+
echo "Usage: lsb_release -a"
12+
exit 2
13+
fi
14+
15+
echo "No LSB modules are available."
16+
echo "Distributor ID: Debian"
17+
echo "Description: Debian GNU/Linux 10 (buster)"
18+
echo "Release: 10"
19+
echo "Codename: buster"
20+
21+
exit 0
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
10.11
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
2+
NAME="Debian GNU/Linux"
3+
VERSION_ID="10"
4+
VERSION="10 (buster)"
5+
VERSION_CODENAME=buster
6+
ID=debian
7+
HOME_URL="https://www.debian.org/"
8+
SUPPORT_URL="https://www.debian.org/support"
9+
BUG_REPORT_URL="https://bugs.debian.org/"

tests/test_distro.py

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,10 @@ def _setup_for_distro(self, distro_root: str) -> None:
138138
class TestOSRelease:
139139
def setup_method(self, test_method: FunctionType) -> None:
140140
dist = test_method.__name__.split("_")[1]
141-
os_release = os.path.join(DISTROS_DIR, dist, "etc", "os-release")
142141
self.distro = distro.LinuxDistribution(
143142
include_lsb=False,
144-
os_release_file=os_release,
145143
distro_release_file="path-to-non-existing-file",
144+
root_dir=os.path.join(DISTROS_DIR, dist),
146145
)
147146

148147
def _test_outcome(self, outcome: Dict[str, str]) -> None:
@@ -217,11 +216,23 @@ def test_debian8_os_release(self) -> None:
217216
"pretty_name": "Debian GNU/Linux 8 (jessie)",
218217
"version": "8",
219218
"pretty_version": "8 (jessie)",
220-
"best_version": "8",
219+
"best_version": "8.2",
221220
"codename": "jessie",
222221
}
223222
self._test_outcome(desired_outcome)
224223

224+
def test_debian10_os_release(self) -> None:
225+
desired_outcome = {
226+
"id": "debian",
227+
"name": "Debian GNU/Linux",
228+
"pretty_name": "Debian GNU/Linux 10 (buster)",
229+
"version": "10",
230+
"pretty_version": "10 (buster)",
231+
"best_version": "10.11",
232+
"codename": "buster",
233+
}
234+
self._test_outcome(desired_outcome)
235+
225236
def test_fedora19_os_release(self) -> None:
226237
desired_outcome = {
227238
"id": "fedora",
@@ -346,7 +357,7 @@ def test_raspbian7_os_release(self) -> None:
346357
"pretty_name": "Raspbian GNU/Linux 7 (wheezy)",
347358
"version": "7",
348359
"pretty_version": "7 (wheezy)",
349-
"best_version": "7",
360+
"best_version": "7.1",
350361
"like": "debian",
351362
"codename": "wheezy",
352363
}
@@ -359,7 +370,7 @@ def test_raspbian8_os_release(self) -> None:
359370
"pretty_name": "Raspbian GNU/Linux 8 (jessie)",
360371
"version": "8",
361372
"pretty_version": "8 (jessie)",
362-
"best_version": "8",
373+
"best_version": "8.0",
363374
"like": "debian",
364375
"codename": "jessie",
365376
}
@@ -1230,6 +1241,20 @@ def test_debian8_release(self) -> None:
12301241
self._test_outcome(desired_outcome)
12311242
self._test_non_existing_release_file()
12321243

1244+
def test_debian10_release(self) -> None:
1245+
desired_outcome = {
1246+
"id": "debian",
1247+
"name": "Debian GNU/Linux",
1248+
"pretty_name": "Debian GNU/Linux 10 (buster)",
1249+
"version": "10",
1250+
"pretty_version": "10 (buster)",
1251+
"best_version": "10.11",
1252+
"codename": "buster",
1253+
"major_version": "10",
1254+
}
1255+
self._test_outcome(desired_outcome)
1256+
self._test_non_existing_release_file()
1257+
12331258
def test_exherbo_release(self) -> None:
12341259
desired_outcome = {
12351260
"id": "exherbo",
@@ -1448,7 +1473,7 @@ def test_raspbian7_release(self) -> None:
14481473
"pretty_name": "Raspbian GNU/Linux 7 (wheezy)",
14491474
"version": "7",
14501475
"pretty_version": "7 (wheezy)",
1451-
"best_version": "7",
1476+
"best_version": "7.1",
14521477
"like": "debian",
14531478
"codename": "wheezy",
14541479
"major_version": "7",
@@ -1463,7 +1488,7 @@ def test_raspbian8_release(self) -> None:
14631488
"pretty_name": "Raspbian GNU/Linux 8 (jessie)",
14641489
"version": "8",
14651490
"pretty_version": "8 (jessie)",
1466-
"best_version": "8",
1491+
"best_version": "8.0",
14671492
"like": "debian",
14681493
"codename": "jessie",
14691494
"major_version": "8",

0 commit comments

Comments
 (0)