76 lines
2.5 KiB
Ruby
76 lines
2.5 KiB
Ruby
$LOAD_PATH << 'lib'
|
|
|
|
require 'open-uri' # allows to load URLs using open()
|
|
require 'deb_importer'
|
|
require 'test_helper'
|
|
|
|
include DebImporter
|
|
|
|
class PackagesHelperTest < ActionView::TestCase
|
|
|
|
test "should be able to parse local Debian repository test files" do
|
|
|
|
# How many packages of each component and architecture we expect
|
|
# when parsing the text files in lib/tasks/files/...
|
|
expected_package_counts = {
|
|
main: {
|
|
amd64: 8320,
|
|
i386: 8082
|
|
},
|
|
restricted: {
|
|
amd64: 21,
|
|
i386: 21
|
|
},
|
|
universe: {
|
|
amd64: 29406,
|
|
i386: 29471
|
|
},
|
|
multiverse: {
|
|
amd64: 672,
|
|
i386: 685
|
|
}
|
|
}
|
|
|
|
# Load information about test repository from environments/test.rb
|
|
repositories = Rails.configuration.package_sources
|
|
Rails.logger = Logger.new(STDOUT)
|
|
Rails.logger.level = Logger::INFO
|
|
# Rails.logger.level = Logger::DEBUG
|
|
|
|
Rails.logger.info "Listing configured DEB repositories"
|
|
|
|
repositories.each do |repository|
|
|
wanted_architectures = repository[:architectures]
|
|
Rails.logger.info "Fetching Release file for repository: #{repository[:url]} with components: #{repository[:components]}"
|
|
release = DebImporter::Release.new(repository[:url], repository[:components])
|
|
Rails.logger.info "> Supported architectures are: #{release.architectures}"
|
|
if wanted_architectures
|
|
Rails.logger.info "> We only want architectures: #{wanted_architectures}"
|
|
end
|
|
Rails.logger.info "> Supported components are: #{release.components}"
|
|
|
|
release.components.split.each do |component|
|
|
Rails.logger.info "> Component: #{component}"
|
|
release.architectures.split.each do |architecture|
|
|
if wanted_architectures and not wanted_architectures.include?(architecture)
|
|
Rails.logger.debug "Architecture #{architecture} not wanted. Skipping."
|
|
next
|
|
end
|
|
|
|
Rails.logger.info ">> Architecture: #{architecture}"
|
|
packages = release.packages(component, architecture)
|
|
packages_count = packages.count
|
|
|
|
if packages
|
|
Rails.logger.info "#{packages_count} packages found."
|
|
|
|
assert_equal expected_package_counts[component.to_sym][architecture.to_sym],
|
|
packages_count
|
|
Rails.logger.info "No packages."
|
|
else
|
|
end
|
|
end # architectures.each
|
|
end # components.each
|
|
end # repositories.each
|
|
end # test
|
|
end # class
|