Skip to content

Commit

Permalink
Unit tests for Vars::detect_release() SWIG bindings
Browse files Browse the repository at this point in the history
Tests in Python, Ruby, Perl.

It only tests the situation where a release cannot be detected.
To detect an installed release, a system database with the corresponding
installed packages is required.
  • Loading branch information
jrohel committed Oct 28, 2024
1 parent 14f7f7a commit a77b80e
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 0 deletions.
43 changes: 43 additions & 0 deletions test/perl5/libdnf5/conf/test_vars.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Copyright Contributors to the libdnf project.
#
# This file is part of libdnf: https://github.com/rpm-software-management/libdnf/
#
# Libdnf is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# Libdnf is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with libdnf. If not, see <https://www.gnu.org/licenses/>.

use strict;
use warnings;

use Test::More;

use FindBin;
use lib "$FindBin::Bin/.."; # Add to search path
use BaseTestCase;

use File::Spec::Functions 'catfile';

use libdnf5::conf;


# test_detect_release
{
my $test = new BaseTestCase();

my $installroot = $test->{base}->get_config()->get_installroot_option()->get_value();

# Cannot detect release in nonexistent directory, return undef
my $release = libdnf5::conf::Vars::detect_release($test->{base}->get_weak_ptr(), catfile($installroot, "nonexist"));
is($release, undef);
}

done_testing();
11 changes: 11 additions & 0 deletions test/python3/libdnf5/conf/test_vars.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,21 @@
# You should have received a copy of the GNU General Public License
# along with libdnf. If not, see <https://www.gnu.org/licenses/>.

import os

import libdnf5

import base_test_case


class TestVars(base_test_case.BaseTestCase):
def test_getting_undefined_variable(self):
vars = self.base.get_vars()
self.assertRaises(IndexError, vars.get_value, "undefined")

def test_detect_release(self):
installroot = self.base.get_config().installroot
# Cannot detect release in nonexistent directory, return None
release = libdnf5.conf.Vars.detect_release(
self.base.get_weak_ptr(), os.path.join(installroot, "nonexist"))
self.assertEqual(release, None)
33 changes: 33 additions & 0 deletions test/ruby/libdnf5/conf/test_vars.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Copyright Contributors to the libdnf project.
#
# This file is part of libdnf: https://github.com/rpm-software-management/libdnf/
#
# Libdnf is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# Libdnf is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with libdnf. If not, see <https://www.gnu.org/licenses/>.

require 'test/unit'
include Test::Unit::Assertions

require 'libdnf5/conf'

require 'base_test_case'


class TestVars < BaseTestCase
def test_detect_release()
installroot = @base.get_config().get_installroot_option().get_value()
# Cannot detect release in nonexistent directory, return nil
release = Conf::Vars::detect_release(@base.get_weak_ptr(), File.join(installroot, "nonexist"))
assert_equal(nil, release)
end
end

0 comments on commit a77b80e

Please sign in to comment.