From bcbec2a00d4c15ef596fcbf9f1a8fe5774e25215 Mon Sep 17 00:00:00 2001 From: tomotomo Date: Fri, 22 Oct 2021 16:26:05 +0900 Subject: [PATCH 1/5] Make Worksheet#copy_to and Worksheet#duplicate returns copied Worksheet --- lib/google_drive/worksheet.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/google_drive/worksheet.rb b/lib/google_drive/worksheet.rb index b461630f..71973184 100644 --- a/lib/google_drive/worksheet.rb +++ b/lib/google_drive/worksheet.rb @@ -151,8 +151,8 @@ def copy_to(spreadsheet_or_id) request = Google::Apis::SheetsV4::CopySheetToAnotherSpreadsheetRequest.new( destination_spreadsheet_id: destination_spreadsheet_id, ) - @session.sheets_service.copy_spreadsheet(spreadsheet.id, sheet_id, request) - nil + response = @session.sheets_service.copy_spreadsheet(spreadsheet.id, sheet_id, request) + Worksheet.new(@session, spreadsheet, response) end # Copy worksheet to owner spreadsheet. From c8f016450a1309e9846227ef8079a5e711a6a33e Mon Sep 17 00:00:00 2001 From: y-bonfire Date: Tue, 29 Jul 2025 19:12:33 +0900 Subject: [PATCH 2/5] copy_to method test --- .env.sample | 2 ++ .gitignore | 1 + Gemfile | 1 + test/test_ci.rb | 50 ++++++++++++++++++++++++++++++++++----------- test/test_helper.rb | 2 ++ 5 files changed, 44 insertions(+), 12 deletions(-) create mode 100644 .env.sample create mode 100644 test/test_helper.rb diff --git a/.env.sample b/.env.sample new file mode 100644 index 00000000..c63ff2a6 --- /dev/null +++ b/.env.sample @@ -0,0 +1,2 @@ +GOOGLE_DRIVE_TEST_SPREADSHEET_ID = "sample1" +DST_GOOGLE_DRIVE_TEST_SPREADSHEET_ID = "sample2" \ No newline at end of file diff --git a/.gitignore b/.gitignore index a5aaebb9..fbb92de1 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ test/config.json Gemfile.lock .idea .gem_rbs_collection +.env diff --git a/Gemfile b/Gemfile index 633e4e7d..4b0346fa 100644 --- a/Gemfile +++ b/Gemfile @@ -3,5 +3,6 @@ gemspec name: 'google_drive_maintained' gem 'highline', '>= 1.5.1', group: :test group :development do gem 'bundler-audit', require: false + gem 'dotenv', require: false end diff --git a/test/test_ci.rb b/test/test_ci.rb index 985b5374..b1bcffe6 100644 --- a/test/test_ci.rb +++ b/test/test_ci.rb @@ -5,33 +5,59 @@ require 'highline' require 'test/unit' require 'google_drive' +require_relative 'test_helper' class TestCi < Test::Unit::TestCase - PREFIX = ''.freeze - - @@session = nil - def setup service_account_path = File.join(File.dirname(__FILE__), 'service_account.json') @session = GoogleDrive::Session.from_service_account_key(service_account_path) spreadsheet_id = ENV['GOOGLE_DRIVE_TEST_SPREADSHEET_ID'] + dst_spreadsheet_id = ENV['DST_GOOGLE_DRIVE_TEST_SPREADSHEET_ID'] raise "Spreadsheet ID missing" unless spreadsheet_id + raise "Destination Spreadsheet ID missing" unless dst_spreadsheet_id @spreadsheet = @session.spreadsheet_by_key(spreadsheet_id) - @ws = @spreadsheet.worksheets.first + @worksheet = @spreadsheet.worksheets.first + @dst_spreadsheet = @session.spreadsheet_by_key(dst_spreadsheet_id) end def test_read_and_write - original = @ws[1, 1] + original = @worksheet[1, 1] test_value = "CI_TEST_#{Time.now.to_i}" - @ws[1, 1] = test_value - @ws.save + @worksheet[1, 1] = test_value + @worksheet.save sleep 1 - @ws.reload - assert { @ws[1, 1] == test_value } + @worksheet.reload + assert { @worksheet[1, 1] == test_value } ensure - @ws[1, 1] = original - @ws.save + @worksheet[1, 1] = original + @worksheet.save + end + + def test_copy_to + # @param worksheet [GoogleDrive::Worksheet] + @worksheet.reload + @worksheet[1,1] = 'A' + @worksheet[1,2] = 'B' + @worksheet[2,1] = '1' + @worksheet[2,2] = '2' + @worksheet.save + + @worksheet.copy_to(@dst_spreadsheet.id) + @worksheet.reload + + last_work_sheet = @dst_spreadsheet.worksheets.last + assert { last_work_sheet[1, 1] == 'A' } + assert { last_work_sheet[1, 2] == 'B' } + assert { last_work_sheet[2, 1] == '1' } + assert { last_work_sheet[2, 2] == '2' } + + # @param dst_spreadsheet [GoogleDrive::Spreadsheet] + @dst_spreadsheet.worksheets.each_with_index do |sheet, index| + next if index == 0 + sheet.delete + end + @dst_spreadsheet.worksheets[0].reload end end \ No newline at end of file diff --git a/test/test_helper.rb b/test/test_helper.rb new file mode 100644 index 00000000..90253698 --- /dev/null +++ b/test/test_helper.rb @@ -0,0 +1,2 @@ +require 'dotenv' +Dotenv.load('.env') \ No newline at end of file From a917993572bbce87ee0d15d6aa555d9274fe73a4 Mon Sep 17 00:00:00 2001 From: y-bonfire Date: Tue, 29 Jul 2025 19:18:35 +0900 Subject: [PATCH 3/5] test environment variable --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 05cb3efc..a6ab31bd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -28,6 +28,7 @@ jobs: run: bundle exec rake test_ci env: GOOGLE_DRIVE_TEST_SPREADSHEET_ID: ${{ secrets.GOOGLE_DRIVE_TEST_SPREADSHEET_ID }} + DST_GOOGLE_DRIVE_TEST_SPREADSHEET_ID: ${{ secrets.DST_GOOGLE_DRIVE_TEST_SPREADSHEET_ID }} - name: Run bundler-audit run: | From 661581706b05a17b291a48e242756e52145bf4e1 Mon Sep 17 00:00:00 2001 From: y-bonfire Date: Tue, 29 Jul 2025 20:42:22 +0900 Subject: [PATCH 4/5] fix --- test/test_ci.rb | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/test/test_ci.rb b/test/test_ci.rb index b1bcffe6..88e99480 100644 --- a/test/test_ci.rb +++ b/test/test_ci.rb @@ -38,16 +38,19 @@ def test_read_and_write def test_copy_to # @param worksheet [GoogleDrive::Worksheet] @worksheet.reload - @worksheet[1,1] = 'A' - @worksheet[1,2] = 'B' - @worksheet[2,1] = '1' - @worksheet[2,2] = '2' + @worksheet[1, 1] = 'A' + @worksheet[1, 2] = 'B' + @worksheet[2, 1] = '1' + @worksheet[2, 2] = '2' @worksheet.save @worksheet.copy_to(@dst_spreadsheet.id) @worksheet.reload last_work_sheet = @dst_spreadsheet.worksheets.last + assert { last_work_sheet.sheet_id == last_work_sheet.sheet_id } + assert { last_work_sheet.title == last_work_sheet.title } + assert { last_work_sheet[1, 1] == 'A' } assert { last_work_sheet[1, 2] == 'B' } assert { last_work_sheet[2, 1] == '1' } From b7f036f1f2145e22507990ca8a7f1d43315929cd Mon Sep 17 00:00:00 2001 From: y-bonfire Date: Tue, 29 Jul 2025 20:42:56 +0900 Subject: [PATCH 5/5] Revert "Merge branch 'pr_414' into develop" This reverts commit 41334c67624a463cc16d4a9cf9bb203409c428db, reversing changes made to a917993572bbce87ee0d15d6aa555d9274fe73a4. --- lib/google_drive/worksheet.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/google_drive/worksheet.rb b/lib/google_drive/worksheet.rb index 6e09245f..862d41ea 100644 --- a/lib/google_drive/worksheet.rb +++ b/lib/google_drive/worksheet.rb @@ -153,8 +153,8 @@ def copy_to(spreadsheet_or_id) request = Google::Apis::SheetsV4::CopySheetToAnotherSpreadsheetRequest.new( destination_spreadsheet_id: destination_spreadsheet_id, ) - response = @session.sheets_service.copy_spreadsheet(spreadsheet.id, sheet_id, request) - Worksheet.new(@session, spreadsheet, response) + @session.sheets_service.copy_spreadsheet(spreadsheet.id, sheet_id, request) + nil end # Copy worksheet to owner spreadsheet.