Skip to content

Commit

Permalink
chore(spanner): Update minitest to 5.14
Browse files Browse the repository at this point in the history
* Add rubocop-minitest
* Run bundle exec rubocop --only Minitest/GlobalExpectations -a
* Revert rubocop-minitest
* Manually fix unit test errors
* Remove deprecated Concurrent.disable_at_exit_handlers! from acceptance test helper.rb since it now has no effect, see ruby-concurrency/concurrent-ruby#841

refs: #4110
refs: #4116
pr:  #5654
  • Loading branch information
quartzmo committed Apr 22, 2020
1 parent bcce4d1 commit 6dcef05
Show file tree
Hide file tree
Showing 143 changed files with 3,311 additions and 3,318 deletions.
4 changes: 0 additions & 4 deletions google-cloud-spanner/Gemfile
Expand Up @@ -7,7 +7,3 @@ gem "google-cloud-env", path: "../google-cloud-env"
gem "google-cloud-errors", path: "../google-cloud-errors"

gem "rake"

# Pin minitest to 5.11.x to avoid warnings emitted by 5.12.
# See https://github.com/googleapis/google-cloud-ruby/issues/4110
gem "minitest", "~> 5.11.3"
38 changes: 19 additions & 19 deletions google-cloud-spanner/acceptance/spanner/backup_operations_test.rb
Expand Up @@ -23,63 +23,63 @@

it "list backup operations" do
instance = spanner.instance instance_id
instance.wont_be :nil?
_(instance).wont_be :nil?

database = instance.database database_id
database.wont_be :nil?
_(database).wont_be :nil?

job = database.create_backup backup_id, expire_time
job.wait_until_done!

# All
jobs = instance.backup_operations.all.to_a
jobs.wont_be :empty?
_(jobs).wont_be :empty?

jobs.each do |job|
job.must_be_kind_of Google::Cloud::Spanner::Backup::Job
_(job).must_be_kind_of Google::Cloud::Spanner::Backup::Job

unless job.error?
job.backup.must_be_kind_of Google::Cloud::Spanner::Backup
_(job.backup).must_be_kind_of Google::Cloud::Spanner::Backup
end

job.progress_percent.must_be :>=, 0
job.start_time.must_be_kind_of Time
_(job.progress_percent).must_be :>=, 0
_(job.start_time).must_be_kind_of Time
end

job = jobs.first
job.reload!.must_be_kind_of Google::Cloud::Spanner::Backup::Job
_(job.reload!).must_be_kind_of Google::Cloud::Spanner::Backup::Job

# Filter completed jobs
filter = "done:true"
jobs = instance.backup_operations(filter: filter).all.to_a
jobs.wont_be :empty?
_(jobs).wont_be :empty?
jobs.each do |job|
job.must_be :done?
_(job).must_be :done?
end

# Filter by database name
filter = "metadata.database:#{database_id}"
jobs = instance.backup_operations(filter: filter).all.to_a
jobs.wont_be :empty?
_(jobs).wont_be :empty?
jobs.each do |job|
job.backup.database_id.must_equal database_id unless job.error?
_(job.backup.database_id).must_equal database_id unless job.error?
end

# Filter by metdata type
filter = "metadata.@type:CreateBackupMetadata"
jobs = instance.backup_operations(filter: filter).all.to_a
jobs.wont_be :empty?
_(jobs).wont_be :empty?
jobs.each do |job|
job.grpc.metadata.must_be_kind_of Google::Spanner::Admin::Database::V1::CreateBackupMetadata
_(job.grpc.metadata).must_be_kind_of Google::Spanner::Admin::Database::V1::CreateBackupMetadata
end

# Filter by job start time
time = (Time.now - 360000)
filter = "metadata.progress.start_time > \"#{time.iso8601}\""
jobs = instance.backup_operations(filter: filter).all.to_a
jobs.wont_be :empty?
_(jobs).wont_be :empty?
jobs.each do |job|
job.start_time.must_be :>, time
_(job.start_time).must_be :>, time
end

# Filer - AND
Expand All @@ -90,10 +90,10 @@
].map{|f| "(#{f})"}.join(" AND ")

jobs = instance.backup_operations(filter: filter).all.to_a
jobs.wont_be :empty?
_(jobs).wont_be :empty?
jobs.each do |job|
job.backup.database_id.must_equal database_id unless job.error?
job.start_time.must_be :>, time
_(job.backup.database_id).must_equal database_id unless job.error?
_(job.start_time).must_be :>, time
end
end
end
116 changes: 58 additions & 58 deletions google-cloud-spanner/acceptance/spanner/backup_test.rb
Expand Up @@ -23,110 +23,110 @@
it "creates, get, updates, restore and delete a database backup" do
backup_id = "#{$spanner_database_id}-crud"
database = spanner.database instance_id, database_id
database.wont_be :nil?
_(database).wont_be :nil?

# Create
job = database.create_backup backup_id, expire_time

job.must_be_kind_of Google::Cloud::Spanner::Backup::Job
job.wont_be :done?
_(job).must_be_kind_of Google::Cloud::Spanner::Backup::Job
_(job).wont_be :done?
job.wait_until_done!

job.must_be :done?
job.error.must_be :nil?
_(job).must_be :done?
_(job.error).must_be :nil?

backup = job.backup
backup.wont_be :nil?
backup.must_be_kind_of Google::Cloud::Spanner::Backup
backup.backup_id.must_equal backup_id
backup.database_id.must_equal database_id
backup.instance_id.must_equal instance_id
backup.project_id.must_equal spanner.project
backup.expire_time.to_i.must_equal expire_time.to_i
backup.create_time.must_be_kind_of Time
backup.size_in_bytes.must_be :>, 0
_(backup).wont_be :nil?
_(backup).must_be_kind_of Google::Cloud::Spanner::Backup
_(backup.backup_id).must_equal backup_id
_(backup.database_id).must_equal database_id
_(backup.instance_id).must_equal instance_id
_(backup.project_id).must_equal spanner.project
_(backup.expire_time.to_i).must_equal expire_time.to_i
_(backup.create_time).must_be_kind_of Time
_(backup.size_in_bytes).must_be :>, 0

# Get
instance = spanner.instance instance_id
backup = instance.backup backup_id

backup.wont_be :nil?
backup.must_be_kind_of Google::Cloud::Spanner::Backup
backup.backup_id.must_equal backup_id
backup.database_id.must_equal database_id
backup.instance_id.must_equal instance_id
backup.project_id.must_equal spanner.project
backup.expire_time.to_i.must_equal expire_time.to_i
backup.create_time.must_be_kind_of Time
backup.size_in_bytes.must_be :>, 0
_(backup).wont_be :nil?
_(backup).must_be_kind_of Google::Cloud::Spanner::Backup
_(backup.backup_id).must_equal backup_id
_(backup.database_id).must_equal database_id
_(backup.instance_id).must_equal instance_id
_(backup.project_id).must_equal spanner.project
_(backup.expire_time.to_i).must_equal expire_time.to_i
_(backup.create_time).must_be_kind_of Time
_(backup.size_in_bytes).must_be :>, 0

# Update
backup.expire_time = expire_time + 3600
backup = instance.backup backup_id
backup.expire_time.to_i.must_equal((expire_time + 3600).to_i)
_(backup.expire_time.to_i).must_equal((expire_time + 3600).to_i)

proc {
_ { proc {
backup.expire_time = Time.now - 36000
}.must_raise Google::Cloud::Error
backup.expire_time.to_i.must_equal((expire_time + 3600 ).to_i)
} }.must_raise Google::Cloud::Error
_(backup.expire_time.to_i).must_equal((expire_time + 3600 ).to_i)

# Restore
restore_database_id = "restore-#{database_id}"
backup = instance.backup backup_id
job = backup.restore restore_database_id
job.wont_be :done?
_(job).wont_be :done?

job.wait_until_done!

job.must_be :done?
job.wont_be :error?
_(job).must_be :done?
_(job).wont_be :error?

database = job.database
database.must_be_kind_of Google::Cloud::Spanner::Database
database.database_id.must_equal restore_database_id
database.instance_id.must_equal instance_id
database.project_id.must_equal spanner.project
_(database).must_be_kind_of Google::Cloud::Spanner::Database
_(database.database_id).must_equal restore_database_id
_(database.instance_id).must_equal instance_id
_(database.project_id).must_equal spanner.project

restore_info = database.restore_info
restore_info.must_be_kind_of Google::Cloud::Spanner::Database::RestoreInfo
restore_info.source_type.must_equal :BACKUP
restore_info.must_be :source_backup?
_(restore_info).must_be_kind_of Google::Cloud::Spanner::Database::RestoreInfo
_(restore_info.source_type).must_equal :BACKUP
_(restore_info).must_be :source_backup?

backup_info = restore_info.backup_info
backup_info.must_be_kind_of Google::Cloud::Spanner::Database::BackupInfo
backup_info.project_id.must_equal spanner.project
backup_info.instance_id.must_equal instance_id
backup_info.backup_id.must_equal backup_id
backup_info.source_database_project_id.must_equal spanner.project
backup_info.source_database_instance_id.must_equal instance_id
backup_info.source_database_id.must_equal database_id
backup_info.create_time.must_be_kind_of Time
_(backup_info).must_be_kind_of Google::Cloud::Spanner::Database::BackupInfo
_(backup_info.project_id).must_equal spanner.project
_(backup_info.instance_id).must_equal instance_id
_(backup_info.backup_id).must_equal backup_id
_(backup_info.source_database_project_id).must_equal spanner.project
_(backup_info.source_database_instance_id).must_equal instance_id
_(backup_info.source_database_id).must_equal database_id
_(backup_info.create_time).must_be_kind_of Time

# Delete
backup.delete
instance.backup(backup_id).must_be :nil?
_(instance.backup(backup_id)).must_be :nil?
end

it "cancel create backup operation" do
backup_id = "#{$spanner_database_id}-cancel"
database = spanner.database instance_id, database_id

job = database.create_backup backup_id, expire_time
job.wont_be :done?
_(job).wont_be :done?

job.cancel

job.reload!
job.must_be :done?
job.error.wont_be :nil?
job.error.code.must_equal 1
job.error.description.must_equal "CANCELLED"
_(job).must_be :done?
_(job.error).wont_be :nil?
_(job.error.code).must_equal 1
_(job.error.description).must_equal "CANCELLED"
end

it "lists and gets database backups" do
backup_id = "#{$spanner_database_id}-list"
database = spanner.database instance_id, database_id
database.wont_be :nil?
_(database).wont_be :nil?

job = database.create_backup backup_id, expire_time
job.wait_until_done!
Expand All @@ -136,20 +136,20 @@

# List all
all_backups = instance.backups.all.to_a
all_backups.wont_be :empty?
_(all_backups).wont_be :empty?
all_backups.each do |backup|
backup.must_be_kind_of Google::Cloud::Spanner::Backup
_(backup).must_be_kind_of Google::Cloud::Spanner::Backup
end

# Filter by backup name
backups = instance.backups(filter: "name:#{backup_id}").to_a
backups.length.must_equal 1
backups.first.backup_id.must_equal backup_id
_(backups.length).must_equal 1
_(backups.first.backup_id).must_equal backup_id

# Filter by database name
backups = instance.backups(filter: "database:#{database_id}").to_a
backups.wont_be :empty?
backups.first.database_id.must_equal database_id
_(backups).wont_be :empty?
_(backups.first.database_id).must_equal database_id

backup.delete
end
Expand Down
Expand Up @@ -45,28 +45,28 @@
end

it "reads all by default" do
batch_snapshot.timestamp.must_be_kind_of Time
_(batch_snapshot.timestamp).must_be_kind_of Time
serialized_snapshot = batch_snapshot.dump

columns = [:id]
partitions = batch_snapshot.partition_read table_name, columns
partitions.each do |partition|
partition.read.partition_token.wont_be_nil
partition.read.columns.must_equal columns.map(&:to_s)
partition.read.table.must_equal "stuffs"
_(partition.read.partition_token).wont_be_nil
_(partition.read.columns).must_equal columns.map(&:to_s)
_(partition.read.table).must_equal "stuffs"

partition = batch_client.load_partition partition.dump

partition.read.partition_token.wont_be_nil
partition.read.columns.must_equal columns.map(&:to_s)
partition.read.table.must_equal "stuffs"
_(partition.read.partition_token).wont_be_nil
_(partition.read.columns).must_equal columns.map(&:to_s)
_(partition.read.table).must_equal "stuffs"

new_batch_snapshot = batch_client.load_batch_snapshot serialized_snapshot
new_batch_snapshot.timestamp.must_be_kind_of Time
_(new_batch_snapshot.timestamp).must_be_kind_of Time
results = new_batch_snapshot.execute_partition partition
results.must_be_kind_of Google::Cloud::Spanner::Results
_(results).must_be_kind_of Google::Cloud::Spanner::Results
unless results.fields.to_a.empty? # With so little data, just one partition should get the entire result set
results.rows.map(&:to_h).must_equal [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }, { id: 6 }, { id: 7 }, { id: 8 }, { id: 9 }, { id: 10 }, { id: 11 }, { id: 12 }]
_(results.rows.map(&:to_h)).must_equal [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }, { id: 6 }, { id: 7 }, { id: 8 }, { id: 9 }, { id: 10 }, { id: 11 }, { id: 12 }]
end
end
batch_snapshot.close
Expand All @@ -79,19 +79,19 @@
sql = "SELECT s.id, s.bool FROM stuffs AS s WHERE s.id = 2 AND s.bool = false"
partitions = batch_snapshot.partition_query sql
partitions.each do |partition|
partition.execute.partition_token.wont_be_nil
partition.execute.sql.must_equal sql
_(partition.execute.partition_token).wont_be_nil
_(partition.execute.sql).must_equal sql

partition = batch_client.load_partition partition.dump

partition.execute.partition_token.wont_be_nil
partition.execute.sql.must_equal sql
_(partition.execute.partition_token).wont_be_nil
_(partition.execute.sql).must_equal sql

new_batch_snapshot = batch_client.load_batch_snapshot serialized_snapshot
results = new_batch_snapshot.execute_partition partition
results.must_be_kind_of Google::Cloud::Spanner::Results
_(results).must_be_kind_of Google::Cloud::Spanner::Results
unless results.fields.to_a.empty? # With so little data, just one partition should get the entire result set
results.rows.map(&:to_h).must_equal [{:id=>2, :bool=>false}]
_(results.rows.map(&:to_h)).must_equal [{:id=>2, :bool=>false}]
end
end
batch_snapshot.close
Expand All @@ -105,19 +105,19 @@
query_options = { optimizer_version: "1" }
partitions = batch_snapshot.partition_query sql, query_options: query_options
partitions.each do |partition|
partition.execute.partition_token.wont_be_nil
partition.execute.sql.must_equal sql
_(partition.execute.partition_token).wont_be_nil
_(partition.execute.sql).must_equal sql

partition = batch_client.load_partition partition.dump

partition.execute.partition_token.wont_be_nil
partition.execute.sql.must_equal sql
_(partition.execute.partition_token).wont_be_nil
_(partition.execute.sql).must_equal sql

new_batch_snapshot = batch_client.load_batch_snapshot serialized_snapshot
results = new_batch_snapshot.execute_partition partition
results.must_be_kind_of Google::Cloud::Spanner::Results
_(results).must_be_kind_of Google::Cloud::Spanner::Results
unless results.fields.to_a.empty? # With so little data, just one partition should get the entire result set
results.rows.map(&:to_h).must_equal [{:id=>2, :bool=>false}]
_(results.rows.map(&:to_h)).must_equal [{:id=>2, :bool=>false}]
end
end
batch_snapshot.close
Expand Down

0 comments on commit 6dcef05

Please sign in to comment.