debshots/test/lib/deb_importer_test.rb

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