Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use getter/setter for needles dir as safer approach rather than package variable #1324

Merged
merged 1 commit into from Dec 20, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion OpenQA/Isotovideo/NeedleDownloader.pm
Expand Up @@ -72,7 +72,7 @@ sub _add_download {

my $needle_name = $needle->{name};
my $latest_update = $needle->{t_updated};
my $needles_dir = $needle::needles_dir;
my $needles_dir = needle::needles_dir();
my $download_target = "$needles_dir/$needle_name.$extension";

if (my $target_stat = stat($download_target)) {
Expand Down
7 changes: 6 additions & 1 deletion needle.pm
Expand Up @@ -33,9 +33,10 @@ use OpenQA::Benchmark::Stopwatch;

our %needles;
our %tags;
our $needles_dir;
our $cleanuphandler;

my $needles_dir;

sub is_click_point_valid {
my ($click_point) = @_;
return (ref $click_point eq 'HASH'
Expand Down Expand Up @@ -340,6 +341,10 @@ sub init {
return $needles_dir;
}

sub needles_dir { $needles_dir; }

sub set_needles_dir { ($needles_dir) = @_; }

sub tags {
my ($wanted) = @_;
my @wanted = split(/ /, $wanted);
Expand Down
4 changes: 2 additions & 2 deletions t/01-test_needle.t
Expand Up @@ -397,7 +397,7 @@ subtest 'needle::init accepts custom NEEDLES_DIR within working directory and ot
};

subtest 'click point' => sub {
$needle::needles_dir = $misc_needles_dir;
needle::set_needles_dir($misc_needles_dir);

my $needle = needle->new('click-point.json');
is_deeply($needle->{area}->[0]->{click_point}, {xpos => 2, ypos => 4}, 'click point parsed');
Expand All @@ -412,7 +412,7 @@ subtest 'click point' => sub {
};

subtest 'workaround property' => sub {
$needle::needles_dir = $misc_needles_dir;
needle::set_needles_dir($misc_needles_dir);

my $workaround_string_needle = needle->new('check-workaround-bsc1234567-20190522.json');
my $workaround_hash_needle = needle->new('check-workaround-hash-20190522.json');
Expand Down
2 changes: 1 addition & 1 deletion t/02-test_ocr.t
Expand Up @@ -28,7 +28,7 @@ unless (which('tesseract')) {

needle::init;

my $img1 = tinycv::read("$needle::needles_dir/bootmenu.test.png");
my $img1 = tinycv::read(needle::needles_dir() . '/bootmenu.test.png');
my $needle = needle->new('bootmenu-ocr.ref.json');
my $res = $img1->search($needle);
ok(defined $res, 'ocr match 1');
Expand Down
3 changes: 2 additions & 1 deletion t/21-needle-downloader.t
Expand Up @@ -23,8 +23,9 @@ $user_agent_mock->mock(get => sub {
});

# setup needle directory
my $needles_dir = $needle::needles_dir = path(tempdir, 'needles_dir');
my $needles_dir = path(tempdir, 'needles_dir');
ok(make_path($needles_dir), 'create test needle dir under ' . $needles_dir);
needle::set_needles_dir($needles_dir);

subtest 'deduce URL for needle download from test variable OPENQA_URL' => sub {
$bmwqemu::vars{OPENQA_URL} = 'https://openqa1-opensuse';
Expand Down