Skip to content

Commit c188abf

Browse files
committed
Ignore "n/a" from lsb_release output allowing other sources to be honored
> closes #373
1 parent 6f61a8a commit c188abf

File tree

4 files changed

+34
-4
lines changed

4 files changed

+34
-4
lines changed

src/distro/distro.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1193,8 +1193,10 @@ def _parse_lsb_release_content(lines: Iterable[str]) -> Dict[str, str]:
11931193
if len(kv) != 2:
11941194
# Ignore lines without colon.
11951195
continue
1196-
k, v = kv
1197-
props.update({k.replace(" ", "_").lower(): v.strip()})
1196+
k, v = kv[0], kv[1].strip()
1197+
if v == "n/a":
1198+
v = ""
1199+
props.update({k.replace(" ", "_").lower(): v})
11981200
return props
11991201

12001202
@cached_property
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/bash
2+
/bin/cat <<'EOT'
3+
No LSB modules are available.
4+
Distributor ID: Debian
5+
Description: Debian GNU/Linux trixie/sid
6+
Release: n/a
7+
Codename: trixie
8+
EOT
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
trixie/sid

tests/test_distro.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,25 @@ def test_ubuntu14normal_lsb_release(self) -> None:
695695
}
696696
self._test_outcome(desired_outcome)
697697

698+
def test_debian13noosrelease_lsb_release(self) -> None:
699+
self._setup_for_distro(os.path.join(TESTDISTROS, "lsb", "debian13_noosrelease"))
700+
701+
self.distro = distro.LinuxDistribution(
702+
os_release_file="path-to-non-existing-file",
703+
distro_release_file="path-to-non-existing-file",
704+
)
705+
706+
desired_outcome = {
707+
"id": "debian",
708+
"name": "Debian",
709+
"pretty_name": "Debian GNU/Linux trixie/sid",
710+
"version": "trixie/sid",
711+
"pretty_version": "trixie/sid (trixie)",
712+
"best_version": "trixie/sid",
713+
"codename": "trixie",
714+
}
715+
self._test_outcome(desired_outcome)
716+
698717
def test_ubuntu14nomodules_lsb_release(self) -> None:
699718
self._setup_for_distro(os.path.join(TESTDISTROS, "lsb", "ubuntu14_nomodules"))
700719

@@ -1677,9 +1696,9 @@ def test_sles12_release(self) -> None:
16771696
"name": "SLES",
16781697
"pretty_name": "SUSE Linux Enterprise Server 12 SP1",
16791698
"version": "12.1",
1680-
"pretty_version": "12.1 (n/a)",
1699+
"pretty_version": "12.1 (s390x)",
16811700
"best_version": "12.1",
1682-
"codename": "n/a",
1701+
"codename": "s390x",
16831702
"major_version": "12",
16841703
"minor_version": "1",
16851704
}

0 commit comments

Comments
 (0)