debshots/test/lib/deb_importer_test.rb

77 lines
2.9 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 detect the proper order of package versions" do
assert(DebImporter::Version.new('2') > DebImporter::Version.new('1'))
assert(DebImporter::Version.new('1.0') > DebImporter::Version.new('0.9'))
assert(DebImporter::Version.new('2:1') > DebImporter::Version.new('1:2'))
assert(DebImporter::Version.new('1.0c') > DebImporter::Version.new('1.0aa'))
assert(DebImporter::Version.new('1.0.1') > DebImporter::Version.new('1.0.0.1'))
assert(DebImporter::Version.new('1.0.0') > DebImporter::Version.new('1.0c'))
assert(DebImporter::Version.new('1.0') > DebImporter::Version.new('1.0~pre'))
end
test "should split version files into epoch, upstream and revision" do
v = DebImporter::Version.new('1.0~git20170104-1')
assert_equal v.epoch, '0'
assert_equal v.upstream, '1.0~git20170104'
assert_equal v.revision, '1'
v = DebImporter::Version.new('0~20161219-1')
assert_equal v.epoch, '0'
assert_equal v.upstream, '0~20161219'
assert_equal v.revision, '1'
v = DebImporter::Version.new('17:2.0.0~git20161130.1.e60d0d5+dfsg1-1')
assert_equal v.epoch, '17'
assert_equal v.upstream, '2.0.0~git20161130.1.e60d0d5+dfsg1'
assert_equal v.revision, '1'
v = DebImporter::Version.new('42')
assert_equal v.epoch, '0'
assert_equal v.upstream, '42'
assert_nil v.revision
v = DebImporter::Version.new('100:9a_b~cdef')
assert_equal v.epoch, '100'
assert_equal v.upstream, '9a_b~cdef'
assert_nil v.revision
end
test "should be able to parse local Debian repository test files" do
Rails.logger = Logger.new(STDOUT)
# Rails.logger.level = Logger::ERROR
Rails.logger.level = Logger::INFO
# Rails.logger.level = Logger::DEBUG
# Load information about test repository from environments/test.rb
repositories = Rails.configuration.package_sources
Rails.logger.info "Test parsing local DEB-style repository"
repository = repositories.first
release = DebImporter::Release.new(repository[:url])
assert_equal release.components, 'main restricted universe multiverse'
# Packages enumerator must be restarted to start from position 1
packages = release.packages('main', 'amd64')
assert_instance_of Enumerator, packages
first_package = packages.first
assert_equal 'account-plugin-aim', first_package[:Package]
# Packages enumerator must be restarted to start from position 1
packages = release.packages('main', 'amd64')
assert_equal 8320, packages.count
# Get information from translation file
i18n = release.i18n('main', 'en')
assert_match /^Real-time strategy game of ancient warfare\n0 A\.D\./, i18n.first[:'Description-en']
end # test
end # class