Skip to content

Commit 282f578

Browse files
Add $Wikibase::Datatype::Utils::SKIP_CHECK_LANG variable
1 parent 208d724 commit 282f578

File tree

4 files changed

+31
-3
lines changed

4 files changed

+31
-3
lines changed

Changes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
0.37
22
- Error message change: Rename error message for check_language() helper.
3+
- Add $Wikibase::Datatype::Utils::SKIP_CHECK_LANG variable to skip check of
4+
Wikibase languages which are supported.
35
- Remove obsolete error message in doc for check_language() helper.
46

57
0.36 2025-01-01T22:02:29+01:00

lib/Wikibase/Datatype/Utils.pm

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ use Readonly;
1313
Readonly::Array our @EXPORT_OK => qw(check_datetime check_entity check_language
1414
check_lexeme check_property check_sense);
1515

16+
our $SKIP_CHECK_LANG => 0;
17+
1618
our $VERSION = 0.37;
1719

1820
sub check_datetime {
@@ -77,7 +79,7 @@ sub check_entity {
7779
sub check_language {
7880
my ($self, $key) = @_;
7981

80-
if (none { $_ eq $self->{$key} } all_language_codes()) {
82+
if (! $SKIP_CHECK_LANG && none { $_ eq $self->{$key} } all_language_codes()) {
8183
err "Language code '".$self->{$key}."' isn't code supported by Wikibase.";
8284
}
8385

@@ -155,6 +157,14 @@ Wikibase::Datatype::Utils - Wikibase datatype utilities.
155157
156158
Datatype utilities for checking of data objects.
157159
160+
=head1 VARIABLES
161+
162+
=head2 C<$SKIP_CHECK_LANG>
163+
164+
Boolean variable to skip check of right language.
165+
166+
Default value is 0, checking is working.
167+
158168
=head1 SUBROUTINES
159169
160170
=head2 C<check_datetime>

t/Wikibase-Datatype-Utils/05-check_language.t

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use warnings;
33

44
use English;
55
use Error::Pure::Utils qw(clean);
6-
use Test::More 'tests' => 4;
6+
use Test::More 'tests' => 5;
77
use Test::NoWarnings;
88
use Wikibase::Datatype::Utils qw(check_language);
99

@@ -35,3 +35,11 @@ $self = {
3535
};
3636
my $ret = check_language($self, 'key');
3737
is($ret, undef, 'Right language is present.');
38+
39+
# Test.
40+
$self = {
41+
'key' => 'xx',
42+
};
43+
$Wikibase::Datatype::Utils::SKIP_CHECK_LANG = 1;
44+
$ret = check_language($self, 'key');
45+
is($ret, undef, 'Not supported language is present without error.');

t/Wikibase-Datatype-Value-Monolingual/03-new.t

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use warnings;
33

44
use English;
55
use Error::Pure::Utils qw(clean);
6-
use Test::More 'tests' => 6;
6+
use Test::More 'tests' => 7;
77
use Test::NoWarnings;
88
use Unicode::UTF8 qw(decode_utf8);
99
use Wikibase::Datatype::Value::Monolingual;
@@ -48,3 +48,11 @@ eval {
4848
};
4949
is($EVAL_ERROR, "Language code 'ger' isn't code supported by Wikibase.\n",
5050
"Language code 'ger' isn't code supported by Wikibase.");
51+
52+
# Test.
53+
$Wikibase::Datatype::Utils::SKIP_CHECK_LANG = 1;
54+
$obj = Wikibase::Datatype::Value::Monolingual->new(
55+
'language' => 'ger',
56+
'value' => 'foo',
57+
);
58+
isa_ok($obj, 'Wikibase::Datatype::Value::Monolingual');

0 commit comments

Comments
 (0)