Skip to content

Commit

Permalink
fix(packages): fixed pre depends option not used in get package depen…
Browse files Browse the repository at this point in the history
…dencies
  • Loading branch information
RonTamG committed Mar 25, 2023
1 parent d1f1755 commit ff9e291
Show file tree
Hide file tree
Showing 3 changed files with 122 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/packages.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ def get_package_dependencies(name, packages, with_dependencies=True, with_recomm
for dep in get_recommended_list(pack)]
extend_unique(dependencies, recommended)

if with_dependencies:
if with_pre_dependencies:
pre_dependencies = [get_index_name(dep)
for dep in get_pre_dependency_list(pack)]
extend_unique(dependencies, pre_dependencies)
Expand Down
108 changes: 108 additions & 0 deletions tests/resources/pre_depends_package.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
Package: gcc-10-base
Source: gcc-10
Version: 10.2.1-6
Installed-Size: 261
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Architecture: amd64
Breaks: gnat (<< 7)
Description: GCC, the GNU Compiler Collection (base package)
Multi-Arch: same
Homepage: http://gcc.gnu.org/
Description-md5: b6e93638a6d08ea7a18929d7cf078e5d
Tag: role::shared-lib
Section: libs
Priority: required
Filename: pool/main/g/gcc-10/gcc-10-base_10.2.1-6_amd64.deb
Size: 201332
MD5sum: 8ad775342ca4fd0adca5a516849b6498
SHA256: be65535e94f95fbf04b104e8ab36790476f063374430f7dfc6c516cbe2d2cd1e

Package: libgcc-s1
Source: gcc-10
Version: 10.2.1-6
Installed-Size: 116
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Architecture: amd64
Replaces: libgcc1 (<< 1:10)
Provides: libgcc1 (= 1:10.2.1-6)
Depends: gcc-10-base (= 10.2.1-6), libc6 (>= 2.14)
Breaks: cryptsetup-initramfs (<< 2:2.2.2-3~)
Description: GCC support library
Multi-Arch: same
Homepage: http://gcc.gnu.org/
Description-md5: bbd60d723e97d8e06c04228ee4c76f10
Important: yes
Protected: yes
Tag: role::shared-lib
Section: libs
Priority: optional
Filename: pool/main/g/gcc-10/libgcc-s1_10.2.1-6_amd64.deb
Size: 41400
MD5sum: 662ac9938f503745221bd777b5a94cab
SHA256: e478f2709d8474165bb664de42e16950c391f30eaa55bc9b3573281d83a29daf

Package: libc6
Source: glibc
Version: 2.31-13+deb11u5
Installed-Size: 12837
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Architecture: amd64
Replaces: libc6-amd64
Depends: libgcc-s1, libcrypt1
Pre-Depends: predep
Recommends: libidn2-0 (>= 2.0.5~), libnss-nis, libnss-nisplus
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales
Breaks: busybox (<< 1.30.1-6), hurd (<< 1:0.9.git20170910-1), ioquake3 (<< 1.36+u20200211.f2c61c1~dfsg-2~), iraf-fitsutil (<< 2018.07.06-4), libgegl-0.4-0 (<< 0.4.18), libtirpc1 (<< 0.2.3), locales (<< 2.31), locales-all (<< 2.31), macs (<< 2.2.7.1-3~), nocache (<< 1.1-1~), nscd (<< 2.31), openarena (<< 0.8.8+dfsg-4~), openssh-server (<< 1:8.1p1-5), r-cran-later (<< 0.7.5+dfsg-2), wcc (<< 0.0.2+dfsg-3)
Description: GNU C Library: Shared libraries
Multi-Arch: same
Homepage: https://www.gnu.org/software/libc/libc.html
Description-md5: fc3001b0b90a1c8e6690b283a619d57f
Tag: role::shared-lib
Section: libs
Priority: optional
Filename: pool/main/g/glibc/libc6_2.31-13+deb11u5_amd64.deb
Size: 2825060
MD5sum: 3230125fb2df166e80d7c0de7d148bbb
SHA256: adf6994e4c000ff5b882db411a23925a5860a10146e27fa08fc08cb4d08e6d85

Package: libcrypt1
Source: libxcrypt
Version: 1:4.4.18-4
Installed-Size: 226
Maintainer: Marco d'Itri <md@linux.it>
Architecture: amd64
Replaces: libc6 (<< 2.29-4)
Depends: libc6 (>= 2.25)
Description: libcrypt shared library
Multi-Arch: same
Description-md5: deac8c9adc422e925bdaf6bffdd3e875
Important: yes
Protected: yes
Tag: role::shared-lib
Section: libs
Priority: optional
Filename: pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_amd64.deb
Size: 87504
MD5sum: d7fd14a5ed9019abe12024988b23bf30
SHA256: f617952df0c57b4ee039448e3941bccd3f97bfff71e9b0f87ca6dae15cb3f5ef

Package: predep
Source: libxcrypt
Version: 1:4.4.18-4
Installed-Size: 226
Maintainer: Marco d'Itri <md@linux.it>
Architecture: amd64
Replaces: libc6 (<< 2.29-4)
Depends: libc6 (>= 2.25)
Description: libcrypt shared library
Multi-Arch: same
Description-md5: deac8c9adc422e925bdaf6bffdd3e875
Important: yes
Protected: yes
Tag: role::shared-lib
Section: libs
Priority: optional
Filename: pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_amd64.deb
Size: 87504
MD5sum: d7fd14a5ed9019abe12024988b23bf30
SHA256: f617952df0c57b4ee039448e3941bccd3f97bfff71e9b0f87ca6dae15cb3f5ef
14 changes: 13 additions & 1 deletion tests/test_packages.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ def test_get_package_dependencies_without_recommended():
assert len(result) == 3
assert all([pack in result for pack in expected])

def test_get_package_dependencies_without_required_priority():

def test_get_package_dependencies_with_required_priority():
expected = ['gcc-10-base', 'libc6', 'libcrypt1', 'libgcc-s1']

with open(os.path.join('tests', 'resources', 'libc6_packages.txt'), 'r', encoding='utf-8') as index_file:
Expand All @@ -29,6 +30,17 @@ def test_get_package_dependencies_without_required_priority():
assert all([pack in result for pack in expected])


def test_get_package_dependencies_without_pre_dependencies():
with open(os.path.join('tests', 'resources', 'pre_depends_package.txt'), 'r', encoding='utf-8') as index_file:
index_data = index_file.read()

index = generate_index_dictionary(index_data)
result = get_package_dependencies('libc6', index, with_recommended=False, with_required=True)
assert 'predep' in result

result = get_package_dependencies('libc6', index, with_pre_dependencies=False, with_recommended=False, with_required=True)
assert 'predep' not in result


def test_get_package_url():
expected = [
Expand Down

0 comments on commit ff9e291

Please sign in to comment.