$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