Skip to content
Open
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
1 change: 1 addition & 0 deletions CHANGES/+repository-modify-architecture-all.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fixed modifying a repository with an architecture-independent package when distribution or component fields were provided.
3 changes: 2 additions & 1 deletion pulp_deb/app/tasks/signing.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,10 +127,11 @@ def _prepare_package_additions(add_content_units, distribution, component):
architecture, _ = ReleaseArchitecture.objects.get_or_create(
distribution=distribution, architecture=package.architecture
)
add_content_units.append(str(architecture.pk))
package_component, _ = PackageReleaseComponent.objects.get_or_create(
release_component=release_component, package=package
)
add_content_units.extend([str(architecture.pk), str(package_component.pk)])
add_content_units.append(str(package_component.pk))
# Source packages only need a link to the release component.
for source_package in source_packages:
source_package_component, _ = SourcePackageReleaseComponent.objects.get_or_create(
Expand Down
31 changes: 31 additions & 0 deletions pulp_deb/tests/functional/api/test_repository_modify.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,37 @@ def test_modify_package_creates_structure_without_release(
assert [item.pulp_href for item in packages.results] == [package.pulp_href]


def test_modify_architecture_all_package_creates_no_release_architecture(
apt_package_release_components_api,
apt_release_architecture_api,
deb_get_repository_by_href,
deb_modify_repository,
deb_package_factory,
deb_repository_factory,
):
repository = deb_repository_factory()
package = deb_package_factory(
file=str(
get_local_package_absolute_path(
"eir_1.0_all.deb", relative_path="data/debian-mixed/pool/asgard/e/eir/"
)
)
)

_modify_with_package(
repository,
package,
deb_modify_repository,
distribution=str(uuid4()),
component=str(uuid4()),
)
repository = deb_get_repository_by_href(repository.pulp_href)

filters = {"repository_version": repository.latest_version_href}
assert apt_release_architecture_api.list(**filters).count == 0
assert apt_package_release_components_api.list(**filters).count == 1


def test_modify_package_without_structure_fields_only_adds_package(
apt_package_release_components_api,
apt_release_architecture_api,
Expand Down
Loading