td 0.17.0 → 0.17.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 39aaf12ff04af9701e21625ab329b422a890edfe295f450ee3b36e7cdbc3e94b
4
- data.tar.gz: c3d8a021e9b4c0b2c599882ee4ca109c691f81d2d2777e085ffcff1326628876
3
+ metadata.gz: 7ed6a6e5934d927122c94bd28a5e356e6d422cacf182e97b30d83b9d453c1a29
4
+ data.tar.gz: eab2f179e910311ac9e0e45325cb366fadfb053268c7707cf4336b8f91e8150d
5
5
  SHA512:
6
- metadata.gz: 55d1ffecf734507573af5d49c8e3f6a70bf9f4859465722ed9a05f07ab405660e6e4c6c395404699ea9b09a426cfe2fb15f2f59cbe0363349b293f29c70a6566
7
- data.tar.gz: 36d7f0ddec937b81ed7a7f08e5f9e88638e96e1545af529b42eaae11152ce51459408363cbf96d6be7b53cf0ce9829d75a881b7d7e677a33a8fa18080200cf46
6
+ metadata.gz: 74843a395778c6fba9bf45d625ecdccbdaf956a7dabc08f4fe0fc1832e567fef60b6600c38aefcffddbd619cddaeb05a45ad71d457df9c31c02ee95ffa934fd5
7
+ data.tar.gz: 0f629764b2006b045235c7e836c0f51edceaa620679833182aba1ce2ce1538e27c6bae28804e913e51f805f1e535f27e6bb5e2eb24a2aade58dc450ad67b011b
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ == 2023-03-18 version 0.17.1
2
+
3
+ * Fix account command error on windows (for Ruby 3) #262
4
+
1
5
  == 2023-03-28 version 0.17.0
2
6
 
3
7
  * Show job's start & end time for td job:show [job_id] #253
@@ -113,12 +113,16 @@ module Command
113
113
 
114
114
  private
115
115
  if Helpers.on_windows?
116
- require 'Win32API'
116
+ require 'fiddle'
117
117
 
118
118
  def get_char
119
- Win32API.new('msvcrt', '_getch', [], 'L').Call
119
+ msvcrt = Fiddle.dlopen('msvcrt')
120
+ getch = Fiddle::Function.new(msvcrt['_getch'], [], Fiddle::TYPE_CHAR)
121
+ getch.call()
120
122
  rescue Exception
121
- Win32API.new('crtdll', '_getch', [], 'L').Call
123
+ crtdll = Fiddle.dlopen('crtdll')
124
+ getch = Fiddle::Function.new(crtdll['_getch'], [], Fiddle::TYPE_CHAR)
125
+ getch.call()
122
126
  end
123
127
 
124
128
  def get_password
data/lib/td/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module TreasureData
2
- TOOLBELT_VERSION = '0.17.0'
2
+ TOOLBELT_VERSION = '0.17.1'
3
3
  end
@@ -0,0 +1,79 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+ require "tempfile"
5
+ require 'td/command/common'
6
+ require 'td/command/account'
7
+ require 'td/command/list'
8
+ require 'td/helpers'
9
+
10
+ module TreasureData::Command
11
+ describe 'account command' do
12
+ let :command do
13
+ Class.new { include TreasureData::Command }.new
14
+ end
15
+ let(:client) { double(:client) }
16
+ let(:conf_file) { Tempfile.new("td.conf").tap {|s| s.close } }
17
+ let(:conf_expect) {
18
+ """[account]
19
+ user = test@email.com
20
+ apikey = 1/xxx
21
+ """
22
+ }
23
+
24
+ before do
25
+ TreasureData::Config.path = conf_file.path
26
+ end
27
+
28
+ it 'is called without any option' do
29
+ expect(STDIN).to receive(:gets).and_return('test@email.com')
30
+ if TreasureData::Helpers.on_windows?
31
+ 'password'.chars.each { |c| expect(command).to receive(:get_char).and_return(c) }
32
+ expect(command).to receive(:get_char).and_return(nil)
33
+ else
34
+ expect(STDIN).to receive(:gets).and_return('password')
35
+ end
36
+ expect(TreasureData::Client).to receive(:authenticate).and_return(client)
37
+ expect(client).to receive(:apikey).and_return("1/xxx")
38
+
39
+ op = List::CommandParser.new("account", %w[], %w[], false, [], true)
40
+ command.account(op)
41
+
42
+ expect(File.read(conf_file.path)).to eq(conf_expect)
43
+ end
44
+
45
+ it 'is called with -f option' do
46
+ if TreasureData::Helpers.on_windows?
47
+ 'password'.chars.each { |c| expect(command).to receive(:get_char).and_return(c) }
48
+ expect(command).to receive(:get_char).and_return(nil)
49
+ else
50
+ expect(STDIN).to receive(:gets).and_return('password')
51
+ end
52
+ expect(TreasureData::Client).to receive(:authenticate).and_return(client)
53
+ expect(client).to receive(:apikey).and_return("1/xxx")
54
+
55
+ op = List::CommandParser.new("account", %w[-f], %w[], false, ['test@email.com'], true)
56
+ command.account(op)
57
+
58
+ expect(File.read(conf_file.path)).to eq(conf_expect)
59
+ end
60
+
61
+ it 'is called with username password mismatched' do
62
+ if TreasureData::Helpers.on_windows?
63
+ 3.times do
64
+ 'password'.chars.each { |c| expect(command).to receive(:get_char).and_return(c) }
65
+ expect(command).to receive(:get_char).and_return(nil)
66
+ end
67
+ else
68
+ expect(STDIN).to receive(:gets).and_return('password').thrice
69
+ end
70
+ expect(TreasureData::Client).to receive(:authenticate).thrice.and_raise(TreasureData::AuthError)
71
+ expect(STDERR).to receive(:puts).with('User name or password mismatched.').thrice
72
+
73
+ op = List::CommandParser.new("account", %w[-f], %w[], false, ['test@email.com'], true)
74
+ command.account(op)
75
+
76
+ expect(File.read(conf_file.path)).to eq("")
77
+ end
78
+ end
79
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: td
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.17.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Treasure Data, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-29 00:00:00.000000000 Z
11
+ date: 2023-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -304,6 +304,7 @@ files:
304
304
  - spec/file_reader/shared_context.rb
305
305
  - spec/file_reader_spec.rb
306
306
  - spec/spec_helper.rb
307
+ - spec/td/command/account_spec.rb
307
308
  - spec/td/command/connector_spec.rb
308
309
  - spec/td/command/export_spec.rb
309
310
  - spec/td/command/import_spec.rb
@@ -360,6 +361,7 @@ test_files:
360
361
  - spec/file_reader/shared_context.rb
361
362
  - spec/file_reader_spec.rb
362
363
  - spec/spec_helper.rb
364
+ - spec/td/command/account_spec.rb
363
365
  - spec/td/command/connector_spec.rb
364
366
  - spec/td/command/export_spec.rb
365
367
  - spec/td/command/import_spec.rb