diff options
author | Patrick J Cherry <patrick@bytemark.co.uk> | 2017-03-20 22:20:39 +0000 |
---|---|---|
committer | Patrick J Cherry <patrick@bytemark.co.uk> | 2017-03-20 22:20:39 +0000 |
commit | 9497809c98ba16d93d5291b6753e9cc3fb562684 (patch) | |
tree | a9efac6b9581f01b734d5e1cfce5d652ae6fb5df | |
parent | e56dc80cbf0bb21e7232173bed465800a1a59e79 (diff) |
Added postgres service + tests for jessie
-rw-r--r-- | .gitlab-ci.yml | 12 | ||||
-rw-r--r-- | test/tc_mauve_database_peculiarities.rb | 69 |
2 files changed, 42 insertions, 39 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cc9f55e..1215d24 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,6 +6,12 @@ stages: test:jessie: &test image: $CI_REGISTRY/docker-images/layers:$DISTRO-ruby stage: test + services: + - postgres:latest + variables: + POSTGRES_DB: mauve + POSTGRES_USER: mauveuser + POSTGRES_PASSWORD: "" variables: DISTRO: jessie before_script: @@ -13,9 +19,9 @@ test:jessie: &test script: - apt install libsqlite3-dev rake ruby-log4r ruby-ipaddress ruby-json ruby-sanitize ruby-rubymail thin ruby-haml ruby-haml-contrib ruby-redcloth ruby-rack ruby-rack-protection ruby-rack-flash3 ruby-tilt ruby-sinatra ruby-locale ruby-rack-test ruby-webmock ruby-timecop ruby-test-unit - bundle install -j $(nproc) --path vendor/bundle --without development - - bundle exec rake test + - POSTGRES_URL=postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres/$POSTGRES_DB bundle exec rake test -test:stretch: +.test:stretch: <<: *test variables: DISTRO: stretch @@ -33,7 +39,7 @@ package:jessie: &package paths: - pkg/ -package:stretch: +.package:stretch: <<: *package variables: DISTRO: stretch diff --git a/test/tc_mauve_database_peculiarities.rb b/test/tc_mauve_database_peculiarities.rb index 9c20faa..8696ce7 100644 --- a/test/tc_mauve_database_peculiarities.rb +++ b/test/tc_mauve_database_peculiarities.rb @@ -1,5 +1,5 @@ # encoding: utf-8 -$:.unshift "../lib" +$LOAD_PATH.unshift '../lib' require 'th_mauve' require 'mauve/datamapper' @@ -14,7 +14,7 @@ class TcMauveDatabasePeculiarities < Mauve::UnitTest def setup super setup_database - @temp_db = "mauve_test.#{10.times.collect{ rand(36).to_s(36) }.join}" + @temp_db = "mauve_test.#{Array.new(10) { rand(36).to_s(36) }.join}" end def teardown @@ -28,7 +28,7 @@ class TcMauveDatabasePeculiarities < Mauve::UnitTest # return unless @db_url - config=<<EOF + config = <<EOF server { database "#{@db_url}" } @@ -37,21 +37,21 @@ EOF Configuration.current = ConfigurationBuilder.parse(config) Server.instance.setup - x = Hash.new - x["en"] = "Please rush me my portable walrus polishing kit!" - x["fi"] = "Ole hyvä kiirehtiä minulle kannettavan mursu kiillotukseen pakki!" - x["jp"] = "私に私のポータブルセイウチの研磨キットを急いでください!" + x = {} + x['en'] = 'Please rush me my portable walrus polishing kit!' + x['fi'] = 'Ole hyvä kiirehtiä minulle kannettavan mursu kiillotukseen pakki!' + x['jp'] = '私に私のポータブルセイウチの研磨キットを急いでください!' %w(UTF-8 WINDOWS-1252 SJIS).each do |enc| x.each do |lang, str| - assert_nothing_raised("Failed to use iconv to convert to #{enc}") { - str = str.encode(enc, :invalid => :replace, :undef => :replace, :replace => '?') - } + assert_nothing_raised("Failed to use iconv to convert to #{enc}") do + str = str.encode(enc, invalid: :replace, undef: :replace, replace: '?') + end alert = Alert.new( - :alert_id => "#{lang}:#{enc}", - :source => "test", - :subject => str + alert_id: "#{lang}:#{enc}", + source: 'test', + subject: str ) assert_nothing_raised("failed to insert #{enc}") { alert.save } @@ -60,30 +60,32 @@ EOF end end - - class TcMauveDatabasePostgresPeculiarities < TcMauveDatabasePeculiarities def setup super - system("createdb #{@temp_db} --encoding UTF8") - unless $?.success? - msg = "Skipping postgres tests, as DB creation (#{@temp_db}) failed." + + if ENV['POSTGRES_URL'] + @db_url = ENV['POSTGRES_URL'] @temp_db = nil - omit(msg) + else + system("createdb #{@temp_db} --encoding UTF8") + unless $?.success? + msg = "Skipping postgres tests, as DB creation (#{@temp_db}) failed." + @temp_db = nil + omit(msg) + end + # @pg_conn = PGconn.open(:dbname => @temp_db) + @db_url = "postgres:///#{@temp_db}" end - # @pg_conn = PGconn.open(:dbname => @temp_db) - @db_url = "postgres:///#{@temp_db}" end def teardown - # @pg_conn.finish if @pg_conn.is_a?(PGconn) and @pg_conn.status == PGconn::CONNECTION_OK super (system("dropdb #{@temp_db}") || puts("Failed to drop #{@temp_db}")) if @temp_db end - def test_reminders_only_go_once - config=<<EOF + config = <<EOF server { database "#{@db_url}" use_notification_buffer false @@ -109,16 +111,16 @@ alert_group("default") { } EOF Configuration.current = ConfigurationBuilder.parse(config) - notification_buffer = Configuration.current.notification_methods["email"].deliver_to_queue + notification_buffer = Configuration.current.notification_methods['email'].deliver_to_queue Server.instance.setup - a = Alert.new( - :alert_id => "test", - :source => "test", - :subject => "test" + a = Alert.new( + alert_id: 'test', + source: 'test', + subject: 'test' ) - assert(a.raise!, "raise was not successful") + assert(a.raise!, 'raise was not successful') assert(a.saved?) assert_equal(1, notification_buffer.length) notification_buffer.pop @@ -133,17 +135,14 @@ EOF assert_equal(1, notification_buffer.length) notification_buffer.pop end - end - - end class TcMauveDatabaseSqlite3Peculiarities < TcMauveDatabasePeculiarities def setup super # @pg_conn = PGconn.open(:dbname => @temp_db) - @db_url = "sqlite3::memory:" + @db_url = 'sqlite3::memory:' end # @@ -153,6 +152,4 @@ class TcMauveDatabaseSqlite3Peculiarities < TcMauveDatabasePeculiarities assert DataMapper::Adapters::SqliteAdapter.private_instance_methods.include?(:with_connection_old) assert DataMapper::Adapters::SqliteAdapter.public_instance_methods.include?(:synchronize) end - end - |