Skip to content

Commit

Permalink
Fix include issues with tests on Ruby 3.2.
Browse files Browse the repository at this point in the history
Ruby 3.2 changes how includes are handled (see
https://redmine.ruby-lang.org/issues/18832). This breaks the
DataSources, Format1 and Format2 test cases (references to constants in
the respective modules are not found).

Add includes for TZInfo::DataSources, TZInfo::Format1 and
TZInfo::Format2 into test classes.

Move the TZInfo include too to stop the pollution of Object (top-level
scope).
  • Loading branch information
philr committed Sep 23, 2022
1 parent 8a781cf commit f76bc7f
Show file tree
Hide file tree
Showing 51 changed files with 133 additions and 104 deletions.
5 changes: 3 additions & 2 deletions test/data_sources/tc_constant_offset_data_timezone_info.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module DataSources
class TCConstantOffsetDataTimezoneInfo < Minitest::Test
include TZInfo
include TZInfo::DataSources

def test_initialize
offset = TimezoneOffset.new(-17900, 0, 'TESTLMT')
identifier = 'Test/Zone'.dup
Expand Down
5 changes: 3 additions & 2 deletions test/data_sources/tc_country_info.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module DataSources
class TCCountryInfo < Minitest::Test
include TZInfo
include TZInfo::DataSources

def test_initialize_nil_code
error = assert_raises(ArgumentError) { CountryInfo.new(nil, 'Zzz', []) }
assert_match(/\bcode\b/, error.message)
Expand Down
5 changes: 3 additions & 2 deletions test/data_sources/tc_data_timezone_info.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module DataSources
class TCDataTimezoneInfo < Minitest::Test
include TZInfo
include TZInfo::DataSources

def test_initialize_nil_identifier
error = assert_raises(ArgumentError) { DataTimezoneInfo.new(nil) }
assert_match(/\bidentifier\b/, error.message)
Expand Down
5 changes: 3 additions & 2 deletions test/data_sources/tc_linked_timezone_info.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module DataSources
class TCLinkedTimezoneInfo < Minitest::Test
include TZInfo
include TZInfo::DataSources

def test_initialize_nil_identifier
error = assert_raises(ArgumentError) { LinkedTimezoneInfo.new(nil, 'Test/Linked') }
assert_match(/\bidentifier\b/, error.message)
Expand Down
7 changes: 5 additions & 2 deletions test/data_sources/tc_posix_time_zone_parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,21 @@

require_relative '../test_utils'

include TZInfo

# Use send as a workaround for erroneous 'wrong number of arguments' errors with
# JRuby 9.0.5.0 when calling methods with Java implementations. See #114.
send(:using, TestUtils::TaintExt) if TestUtils.const_defined?(:TaintExt)

module DataSources
class TCPosixTimeZoneParser < Minitest::Test
include TZInfo
include TZInfo::DataSources

HOUR = 3600
MINUTE = 60

class << self
include TZInfo::DataSources

private

def append_time_to_rule(day_rule, time)
Expand Down
5 changes: 3 additions & 2 deletions test/data_sources/tc_ruby_data_source.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@
# JRuby 9.0.5.0 when calling methods with Java implementations. See #114.
send(:using, TestUtils::TaintExt) if TestUtils.const_defined?(:TaintExt)

include TZInfo

module DataSources
class TCRubyDataSource < Minitest::Test
include TZInfo
include TZInfo::DataSources

def setup
@data_source = RubyDataSource.new
end
Expand Down
5 changes: 3 additions & 2 deletions test/data_sources/tc_timezone_info.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module DataSources
class TCTimezoneInfo < Minitest::Test
include TZInfo
include TZInfo::DataSources

def test_initialize_nil_identifier
error = assert_raises(ArgumentError) { TimezoneInfo.new(nil) }
assert_match(/\bidentifier\b/, error.message)
Expand Down
5 changes: 3 additions & 2 deletions test/data_sources/tc_transitions_data_timezone_info.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module DataSources
class TCTransitionsDataTimezoneInfo < Minitest::Test
include TZInfo
include TZInfo::DataSources

def test_initialize_transitions
o1 = TimezoneOffset.new(-17900, 0, 'TESTLMT')
o2 = TimezoneOffset.new(-18000, 3600, 'TESTD')
Expand Down
7 changes: 4 additions & 3 deletions test/data_sources/tc_zoneinfo_data_source.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,16 @@
require 'pathname'
require 'tmpdir'

include TZInfo

# Use send as a workaround for erroneous 'wrong number of arguments' errors with
# JRuby 9.0.5.0 when calling methods with Java implementations. See #114.
send(:using, TestUtils::TaintExt) if TestUtils.const_defined?(:TaintExt)
send(:using, UntaintExt) if TZInfo.const_defined?(:UntaintExt)
send(:using, TZInfo.const_get(:UntaintExt)) if TZInfo.const_defined?(:UntaintExt)

module DataSources
class TCZoneinfoDataSource < Minitest::Test
include TZInfo
include TZInfo::DataSources

ZONEINFO_DIR = File.expand_path(File.join(File.dirname(__FILE__), '..', 'zoneinfo')).untaint

def setup
Expand Down
7 changes: 4 additions & 3 deletions test/data_sources/tc_zoneinfo_reader.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@
require_relative '../test_utils'
require 'tempfile'

include TZInfo

# Use send as a workaround for erroneous 'wrong number of arguments' errors with
# JRuby 9.0.5.0 when calling methods with Java implementations. See #114.
send(:using, UntaintExt) if TZInfo.const_defined?(:UntaintExt)
send(:using, TZInfo.const_get(:UntaintExt)) if TZInfo.const_defined?(:UntaintExt)

module DataSources
class TCZoneinfoReader < Minitest::Test
include TZInfo
include TZInfo::DataSources

class FakePosixTimeZoneParser
def initialize(&block)
@on_parse = block
Expand Down
5 changes: 3 additions & 2 deletions test/format1/tc_country_definer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module Format1
class TCCountryDefiner < Minitest::Test
include TZInfo
include TZInfo.const_get(:Format1)

def setup
@identifier_deduper = StringDeduper.new
@description_deduper = StringDeduper.new
Expand Down
4 changes: 2 additions & 2 deletions test/format1/tc_country_index_definition.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@

require_relative '../test_utils'

include TZInfo

module Format1
class TCCountryIndexDefinition < Minitest::Test
include TZInfo
include TZInfo.const_get(:Format1)

def test_none
m = Module.new
Expand Down
5 changes: 3 additions & 2 deletions test/format1/tc_timezone_definer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module Format1
class TCTimezoneDefiner < Minitest::Test
include TZInfo
include TZInfo.const_get(:Format1)

def setup
@string_deduper = StringDeduper.new
@definer = TimezoneDefiner.new(@string_deduper)
Expand Down
5 changes: 3 additions & 2 deletions test/format1/tc_timezone_definition.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module Format1
class TCTimezoneDefinition < Minitest::Test
include TZInfo
include TZInfo.const_get(:Format1)

def test_timezone_definer_class
m = Module.new
m.send(:include, TimezoneDefinition)
Expand Down
5 changes: 3 additions & 2 deletions test/format1/tc_timezone_index_definition.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module Format1
class TCTimezoneIndexDefinition < Minitest::Test
include TZInfo
include TZInfo.const_get(:Format1)

def test_mixed
m = Module.new
m.send(:include, TimezoneIndexDefinition)
Expand Down
5 changes: 3 additions & 2 deletions test/format2/tc_country_definer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module Format2
class TCCountryDefiner < Minitest::Test
include TZInfo
include TZInfo.const_get(:Format2)

def setup
@identifier_deduper = StringDeduper.new
@description_deduper = StringDeduper.new
Expand Down
5 changes: 3 additions & 2 deletions test/format2/tc_country_index_definer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module Format2
class TCCountryIndexDefiner < Minitest::Test
include TZInfo
include TZInfo.const_get(:Format2)

def setup
@identifier_deduper = StringDeduper.new
@description_deduper = StringDeduper.new
Expand Down
4 changes: 2 additions & 2 deletions test/format2/tc_country_index_definition.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@

require_relative '../test_utils'

include TZInfo

module Format2
class TCCountryIndexDefinition < Minitest::Test
include TZInfo
include TZInfo.const_get(:Format2)

def test_not_defined
m = Module.new
Expand Down
5 changes: 3 additions & 2 deletions test/format2/tc_timezone_definer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module Format2
class TCTimezoneDefiner < Minitest::Test
include TZInfo
include TZInfo.const_get(:Format2)

def setup
@string_deduper = StringDeduper.new
@definer = TimezoneDefiner.new(@string_deduper)
Expand Down
5 changes: 3 additions & 2 deletions test/format2/tc_timezone_definition.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module Format2
class TCTimezoneDefinition < Minitest::Test
include TZInfo
include TZInfo.const_get(:Format2)

def test_timezone_definer_class
m = Module.new
m.send(:include, TimezoneDefinition)
Expand Down
5 changes: 3 additions & 2 deletions test/format2/tc_timezone_index_definer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module Format2
class TCTimezoneIndexDefiner < Minitest::Test
include TZInfo
include TZInfo.const_get(:Format2)

def setup
@string_deduper = StringDeduper.new
@definer = TimezoneIndexDefiner.new(@string_deduper)
Expand Down
5 changes: 3 additions & 2 deletions test/format2/tc_timezone_index_definition.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

require_relative '../test_utils'

include TZInfo

module Format2
class TCTimezoneIndexDefinition < Minitest::Test
include TZInfo
include TZInfo.const_get(:Format2)

def test_mixed
m = Module.new
m.send(:include, TimezoneIndexDefinition)
Expand Down
5 changes: 2 additions & 3 deletions test/tc_annual_rules.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@

require_relative 'test_utils'

include TZInfo

class TCAnnualRules < Minitest::Test
include TZInfo

def test_initialize
std_offset = TimezoneOffset.new(0, 0, 'GMT')
Expand Down Expand Up @@ -92,7 +91,7 @@ def initialize(month, day)
end

def at(offset, year)
TimestampWithOffset.for(Time.new(year, @month, @day, 0, 0, 0, offset.observed_utc_offset)).set_timezone_offset(offset)
TZInfo::TimestampWithOffset.for(Time.new(year, @month, @day, 0, 0, 0, offset.observed_utc_offset)).set_timezone_offset(offset)
end
end
end
4 changes: 2 additions & 2 deletions test/tc_country.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@

require_relative 'test_utils'

include TZInfo

# Use send as a workaround for erroneous 'wrong number of arguments' errors with
# JRuby 9.0.5.0 when calling methods with Java implementations. See #114.
send(:using, TestUtils::TaintExt) if TestUtils.const_defined?(:TaintExt)

class TCCountry < Minitest::Test
include TZInfo

def setup
@orig_data_source = DataSource.get
end
Expand Down
4 changes: 2 additions & 2 deletions test/tc_country_timezone.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@

require_relative 'test_utils'

include TZInfo

class TCCountryTimezone < Minitest::Test
include TZInfo

def test_identifier
ct = CountryTimezone.new('Europe/London', Rational(2059, 40), Rational(-5, 16))
assert_equal('Europe/London', ct.identifier)
Expand Down
Loading

0 comments on commit f76bc7f

Please sign in to comment.