iostreams 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/Rakefile +7 -7
  4. data/lib/io_streams/builder.rb +4 -3
  5. data/lib/io_streams/bzip2/reader.rb +1 -1
  6. data/lib/io_streams/bzip2/writer.rb +1 -1
  7. data/lib/io_streams/deprecated.rb +2 -3
  8. data/lib/io_streams/encode/reader.rb +5 -8
  9. data/lib/io_streams/encode/writer.rb +1 -1
  10. data/lib/io_streams/io_streams.rb +5 -2
  11. data/lib/io_streams/line/reader.rb +2 -1
  12. data/lib/io_streams/path.rb +4 -4
  13. data/lib/io_streams/paths/http.rb +8 -10
  14. data/lib/io_streams/paths/matcher.rb +10 -11
  15. data/lib/io_streams/paths/s3.rb +6 -6
  16. data/lib/io_streams/paths/sftp.rb +38 -23
  17. data/lib/io_streams/pgp.rb +45 -35
  18. data/lib/io_streams/pgp/reader.rb +4 -6
  19. data/lib/io_streams/pgp/writer.rb +1 -2
  20. data/lib/io_streams/reader.rb +2 -2
  21. data/lib/io_streams/record/writer.rb +2 -4
  22. data/lib/io_streams/row/writer.rb +3 -5
  23. data/lib/io_streams/stream.rb +6 -6
  24. data/lib/io_streams/symmetric_encryption/reader.rb +1 -3
  25. data/lib/io_streams/symmetric_encryption/writer.rb +2 -6
  26. data/lib/io_streams/tabular.rb +12 -10
  27. data/lib/io_streams/tabular/header.rb +4 -4
  28. data/lib/io_streams/tabular/parser/array.rb +2 -4
  29. data/lib/io_streams/tabular/parser/csv.rb +3 -5
  30. data/lib/io_streams/tabular/parser/fixed.rb +4 -3
  31. data/lib/io_streams/tabular/parser/hash.rb +2 -4
  32. data/lib/io_streams/tabular/parser/json.rb +2 -4
  33. data/lib/io_streams/tabular/parser/psv.rb +5 -7
  34. data/lib/io_streams/tabular/utility/csv_row.rb +9 -17
  35. data/lib/io_streams/utils.rb +3 -3
  36. data/lib/io_streams/utils/reliable_http.rb +98 -0
  37. data/lib/io_streams/version.rb +1 -1
  38. data/lib/io_streams/writer.rb +1 -1
  39. data/lib/io_streams/xlsx/reader.rb +5 -5
  40. data/lib/io_streams/zip/reader.rb +1 -1
  41. data/lib/io_streams/zip/writer.rb +2 -2
  42. data/lib/iostreams.rb +34 -34
  43. data/test/builder_test.rb +74 -74
  44. data/test/bzip2_reader_test.rb +8 -13
  45. data/test/bzip2_writer_test.rb +8 -9
  46. data/test/deprecated_test.rb +25 -29
  47. data/test/encode_reader_test.rb +14 -18
  48. data/test/encode_writer_test.rb +29 -30
  49. data/test/gzip_reader_test.rb +8 -13
  50. data/test/gzip_writer_test.rb +10 -11
  51. data/test/io_streams_test.rb +35 -35
  52. data/test/line_reader_test.rb +35 -39
  53. data/test/line_writer_test.rb +8 -9
  54. data/test/minimal_file_reader.rb +1 -1
  55. data/test/path_test.rb +24 -24
  56. data/test/paths/file_test.rb +42 -42
  57. data/test/paths/http_test.rb +5 -5
  58. data/test/paths/matcher_test.rb +11 -12
  59. data/test/paths/s3_test.rb +44 -46
  60. data/test/paths/sftp_test.rb +18 -18
  61. data/test/pgp_reader_test.rb +13 -15
  62. data/test/pgp_test.rb +43 -44
  63. data/test/pgp_writer_test.rb +27 -28
  64. data/test/record_reader_test.rb +9 -10
  65. data/test/record_writer_test.rb +10 -11
  66. data/test/row_reader_test.rb +5 -6
  67. data/test/row_writer_test.rb +7 -8
  68. data/test/stream_test.rb +60 -62
  69. data/test/tabular_test.rb +111 -111
  70. data/test/test_helper.rb +22 -22
  71. data/test/utils_test.rb +7 -7
  72. data/test/xlsx_reader_test.rb +12 -12
  73. data/test/zip_reader_test.rb +14 -21
  74. data/test/zip_writer_test.rb +10 -10
  75. metadata +4 -3
@@ -1,4 +1,4 @@
1
- require_relative '../test_helper'
1
+ require_relative "../test_helper"
2
2
 
3
3
  module Paths
4
4
  class SFTPTest < Minitest::Test
@@ -17,13 +17,13 @@ module Paths
17
17
 
18
18
  let(:url) { File.join("sftp://", host_name, ftp_dir) }
19
19
 
20
- let(:file_name) { File.join(File.dirname(__FILE__), '..', 'files', 'text file.txt') }
20
+ let(:file_name) { File.join(File.dirname(__FILE__), "..", "files", "text file.txt") }
21
21
  let(:raw) { File.read(file_name) }
22
22
 
23
23
  let(:root_path) { IOStreams::Paths::SFTP.new(url, username: username, password: password) }
24
24
 
25
25
  let :existing_path do
26
- path = root_path.join('test.txt')
26
+ path = root_path.join("test.txt")
27
27
  path.write(raw)
28
28
  path
29
29
  end
@@ -40,55 +40,55 @@ module Paths
40
40
  root_path.join("writer_test.txt")
41
41
  end
42
42
 
43
- describe '#reader' do
44
- it 'reads' do
45
- assert_equal raw, existing_path.reader { |io| io.read }
43
+ describe "#reader" do
44
+ it "reads" do
45
+ assert_equal raw, existing_path.reader(&:read)
46
46
  end
47
47
 
48
- it 'fails when the file does not exist' do
48
+ it "fails when the file does not exist" do
49
49
  assert_raises IOStreams::Errors::CommunicationsFailure do
50
50
  missing_file_path.read
51
51
  end
52
52
  end
53
53
 
54
- it 'fails when the directory does not exist' do
54
+ it "fails when the directory does not exist" do
55
55
  assert_raises IOStreams::Errors::CommunicationsFailure do
56
56
  missing_path.read
57
57
  end
58
58
  end
59
59
  end
60
60
 
61
- describe '#writer' do
62
- it 'writes' do
61
+ describe "#writer" do
62
+ it "writes" do
63
63
  assert_equal raw.size, write_path.writer { |io| io.write(raw) }
64
64
  assert_equal raw, write_path.read
65
65
  end
66
66
 
67
- it 'fails when the directory does not exist' do
67
+ it "fails when the directory does not exist" do
68
68
  assert_raises IOStreams::Errors::CommunicationsFailure do
69
69
  missing_path.write("Bad path")
70
70
  end
71
71
  end
72
72
 
73
- describe 'use identity file instead of password' do
73
+ describe "use identity file instead of password" do
74
74
  let :root_path do
75
- IOStreams::Paths::SFTP.new(url, username: identity_username, ssh_options: {'IdentityFile' => ENV["SFTP_IDENTITY_FILE"]})
75
+ IOStreams::Paths::SFTP.new(url, username: identity_username, ssh_options: {"IdentityFile" => ENV["SFTP_IDENTITY_FILE"]})
76
76
  end
77
77
 
78
- it 'writes' do
78
+ it "writes" do
79
79
  skip "No identity file env var set: SFTP_IDENTITY_FILE" unless ENV["SFTP_IDENTITY_FILE"]
80
80
  assert_equal raw.size, write_path.writer { |io| io.write(raw) }
81
81
  assert_equal raw, write_path.read
82
82
  end
83
83
  end
84
84
 
85
- describe 'use identity key instead of password' do
85
+ describe "use identity key instead of password" do
86
86
  let :root_path do
87
- key = File.open(ENV["SFTP_IDENTITY_FILE"], 'rb', &:read)
88
- IOStreams::Paths::SFTP.new(url, username: identity_username, ssh_options: {'IdentityKey' => key})
87
+ key = File.open(ENV["SFTP_IDENTITY_FILE"], "rb", &:read)
88
+ IOStreams::Paths::SFTP.new(url, username: identity_username, ssh_options: {"IdentityKey" => key})
89
89
  end
90
90
 
91
- it 'writes' do
91
+ it "writes" do
92
92
  skip "No identity file env var set: SFTP_IDENTITY_FILE" unless ENV["SFTP_IDENTITY_FILE"]
93
93
  assert_equal raw.size, write_path.writer { |io| io.write(raw) }
94
94
  assert_equal raw, write_path.read
@@ -1,13 +1,13 @@
1
- require_relative 'test_helper'
1
+ require_relative "test_helper"
2
2
 
3
3
  class PgpReaderTest < Minitest::Test
4
4
  describe IOStreams::Pgp::Reader do
5
5
  let :temp_file do
6
- Tempfile.new('iostreams')
6
+ Tempfile.new("iostreams")
7
7
  end
8
8
 
9
9
  let :decrypted do
10
- file_name = File.join(File.dirname(__FILE__), 'files', 'text.txt')
10
+ file_name = File.join(File.dirname(__FILE__), "files", "text.txt")
11
11
  File.read(file_name)
12
12
  end
13
13
 
@@ -15,34 +15,32 @@ class PgpReaderTest < Minitest::Test
15
15
  temp_file.delete
16
16
  end
17
17
 
18
- describe '.file' do
19
- it 'reads encrypted file' do
20
- IOStreams::Pgp::Writer.file(temp_file.path, recipient: 'receiver@example.org') do |io|
18
+ describe ".file" do
19
+ it "reads encrypted file" do
20
+ IOStreams::Pgp::Writer.file(temp_file.path, recipient: "receiver@example.org") do |io|
21
21
  io.write(decrypted)
22
22
  end
23
23
 
24
- result = IOStreams::Pgp::Reader.file(temp_file.path, passphrase: 'receiver_passphrase') { |file| file.read }
24
+ result = IOStreams::Pgp::Reader.file(temp_file.path, passphrase: "receiver_passphrase", &:read)
25
25
  assert_equal decrypted, result
26
26
  end
27
27
 
28
- it 'fails with bad passphrase' do
28
+ it "fails with bad passphrase" do
29
29
  assert_raises IOStreams::Pgp::Failure do
30
- IOStreams::Pgp::Reader.file(temp_file.path, passphrase: 'BAD') { |file| file.read }
30
+ IOStreams::Pgp::Reader.file(temp_file.path, passphrase: "BAD", &:read)
31
31
  end
32
32
  end
33
33
 
34
- it 'streams input' do
35
- io_string = StringIO.new(''.b)
36
- IOStreams::Pgp::Writer.stream(io_string, recipient: 'receiver@example.org', signer: 'sender@example.org', signer_passphrase: 'sender_passphrase') do |io|
34
+ it "streams input" do
35
+ io_string = StringIO.new("".b)
36
+ IOStreams::Pgp::Writer.stream(io_string, recipient: "receiver@example.org", signer: "sender@example.org", signer_passphrase: "sender_passphrase") do |io|
37
37
  io.write(decrypted)
38
38
  end
39
39
 
40
40
  io = StringIO.new(io_string.string)
41
- result = IOStreams::Pgp::Reader.stream(io, passphrase: 'receiver_passphrase', &:read)
41
+ result = IOStreams::Pgp::Reader.stream(io, passphrase: "receiver_passphrase", &:read)
42
42
  assert_equal decrypted, result
43
43
  end
44
-
45
44
  end
46
-
47
45
  end
48
46
  end
@@ -1,19 +1,21 @@
1
- require_relative 'test_helper'
1
+ require_relative "test_helper"
2
2
 
3
- #IOStreams::Pgp.logger = Logger.new(STDOUT)
3
+ # Turn on logging if experiencing issues with new versions of gpg
4
+ # require "logger"
5
+ # IOStreams::Pgp.logger = Logger.new(STDOUT)
4
6
 
5
7
  class PgpTest < Minitest::Test
6
8
  describe IOStreams::Pgp do
7
9
  let :user_name do
8
- 'Joe Bloggs'
10
+ "Joe Bloggs"
9
11
  end
10
12
 
11
13
  let :email do
12
- 'pgp_test@iostreams.net'
14
+ "pgp_test@iostreams.net"
13
15
  end
14
16
 
15
17
  let :passphrase do
16
- 'hello'
18
+ "hello"
17
19
  end
18
20
 
19
21
  let :generated_key_id do
@@ -30,23 +32,23 @@ class PgpTest < Minitest::Test
30
32
  # Call list_keys again to give GnuPGP time.
31
33
  IOStreams::Pgp.list_keys(email: email, private: true)
32
34
  IOStreams::Pgp.delete_keys(email: email, public: true, private: true)
33
- #ap "KEYS DELETED"
34
- #ap IOStreams::Pgp.list_keys(email: email, private: true)
35
+ # ap "KEYS DELETED"
36
+ # ap IOStreams::Pgp.list_keys(email: email, private: true)
35
37
  end
36
38
 
37
- describe '.pgp_version' do
38
- it 'returns pgp version' do
39
+ describe ".pgp_version" do
40
+ it "returns pgp version" do
39
41
  assert IOStreams::Pgp.pgp_version
40
42
  end
41
43
  end
42
44
 
43
- describe '.generate_key' do
44
- it 'returns the key id' do
45
+ describe ".generate_key" do
46
+ it "returns the key id" do
45
47
  assert generated_key_id
46
48
  end
47
49
  end
48
50
 
49
- describe '.has_key?' do
51
+ describe ".key?" do
50
52
  before do
51
53
  generated_key_id
52
54
  # There is a timing issue with creating and then immediately using keys.
@@ -54,21 +56,21 @@ class PgpTest < Minitest::Test
54
56
  IOStreams::Pgp.list_keys(email: email)
55
57
  end
56
58
 
57
- it 'confirms public key' do
58
- assert IOStreams::Pgp.has_key?(key_id: generated_key_id)
59
+ it "confirms public key" do
60
+ assert IOStreams::Pgp.key?(key_id: generated_key_id)
59
61
  end
60
62
 
61
- it 'confirms private key' do
62
- assert IOStreams::Pgp.has_key?(key_id: generated_key_id, private: true)
63
+ it "confirms private key" do
64
+ assert IOStreams::Pgp.key?(key_id: generated_key_id, private: true)
63
65
  end
64
66
  end
65
67
 
66
- describe '.delete_keys' do
67
- it 'handles no keys' do
68
- refute IOStreams::Pgp.delete_keys(email: 'random@iostreams.net', public: true, private: true)
68
+ describe ".delete_keys" do
69
+ it "handles no keys" do
70
+ refute IOStreams::Pgp.delete_keys(email: "random@iostreams.net", public: true, private: true)
69
71
  end
70
72
 
71
- it 'deletes existing keys' do
73
+ it "deletes existing keys" do
72
74
  generated_key_id
73
75
  # There is a timing issue with creating and then deleting keys.
74
76
  # Call list_keys again to give GnuPGP time.
@@ -76,34 +78,34 @@ class PgpTest < Minitest::Test
76
78
  assert IOStreams::Pgp.delete_keys(email: email, public: true, private: true)
77
79
  end
78
80
 
79
- it 'deletes just the private key' do
81
+ it "deletes just the private key" do
80
82
  generated_key_id
81
83
  # There is a timing issue with creating and then deleting keys.
82
84
  # Call list_keys again to give GnuPGP time.
83
85
  IOStreams::Pgp.list_keys(email: email, private: true)
84
86
  assert IOStreams::Pgp.delete_keys(email: email, public: false, private: true)
85
- refute IOStreams::Pgp.has_key?(key_id: generated_key_id, private: true)
86
- assert IOStreams::Pgp.has_key?(key_id: generated_key_id, private: false)
87
+ refute IOStreams::Pgp.key?(key_id: generated_key_id, private: true)
88
+ assert IOStreams::Pgp.key?(key_id: generated_key_id, private: false)
87
89
  end
88
90
  end
89
91
 
90
- describe '.export' do
92
+ describe ".export" do
91
93
  before do
92
94
  generated_key_id
93
95
  end
94
96
 
95
- it 'exports public keys by email' do
97
+ it "exports public keys by email" do
96
98
  assert ascii_keys = IOStreams::Pgp.export(email: email)
97
99
  assert ascii_keys =~ /BEGIN PGP PUBLIC KEY BLOCK/, ascii_keys
98
100
  end
99
101
 
100
- it 'exports public keys as binary' do
102
+ it "exports public keys as binary" do
101
103
  assert keys = IOStreams::Pgp.export(email: email, ascii: false)
102
104
  refute keys =~ /BEGIN PGP (PUBLIC|PRIVATE) KEY BLOCK/, keys
103
105
  end
104
106
  end
105
107
 
106
- describe '.list_keys' do
108
+ describe ".list_keys" do
107
109
  before do
108
110
  generated_key_id
109
111
  # There is a timing issue with creating and then immediately using keys.
@@ -111,7 +113,7 @@ class PgpTest < Minitest::Test
111
113
  IOStreams::Pgp.list_keys(email: email)
112
114
  end
113
115
 
114
- it 'lists public keys' do
116
+ it "lists public keys" do
115
117
  assert keys = IOStreams::Pgp.list_keys(email: email)
116
118
  assert_equal 1, keys.size
117
119
  assert key = keys.first
@@ -120,17 +122,15 @@ class PgpTest < Minitest::Test
120
122
  assert_equal email, key[:email]
121
123
  assert_includes key[:key_id], generated_key_id
122
124
  assert_equal 1024, key[:key_length]
123
- assert_includes ['R', 'rsa'], key[:key_type]
125
+ assert_includes %w[R rsa], key[:key_type]
124
126
  assert_equal user_name, key[:name]
125
127
  refute key[:private], key
126
128
  ver = IOStreams::Pgp.pgp_version
127
- maint = ver.split('.').last.to_i
128
- if (ver.to_f >= 2) && (maint >= 30)
129
- assert_equal 'ultimate', key[:trust]
130
- end
129
+ maint = ver.split(".").last.to_i
130
+ assert_equal "ultimate", key[:trust] if (ver.to_f >= 2) && (maint >= 30)
131
131
  end
132
132
 
133
- it 'lists private keys' do
133
+ it "lists private keys" do
134
134
  assert keys = IOStreams::Pgp.list_keys(email: email, private: true)
135
135
  assert_equal 1, keys.size
136
136
  assert key = keys.first
@@ -139,14 +139,14 @@ class PgpTest < Minitest::Test
139
139
  assert_equal email, key[:email]
140
140
  assert_includes key[:key_id], generated_key_id
141
141
  assert_equal 1024, key[:key_length]
142
- assert_includes ['R', 'rsa'], key[:key_type]
142
+ assert_includes %w[R rsa], key[:key_type]
143
143
  assert_equal user_name, key[:name]
144
144
  assert key[:private], key
145
145
  end
146
146
  end
147
147
 
148
- describe '.key_info' do
149
- it 'extracts public key info' do
148
+ describe ".key_info" do
149
+ it "extracts public key info" do
150
150
  assert keys = IOStreams::Pgp.key_info(key: public_key)
151
151
  assert_equal 1, keys.size
152
152
  assert key = keys.first
@@ -155,20 +155,20 @@ class PgpTest < Minitest::Test
155
155
  assert_equal email, key[:email]
156
156
  assert_includes key[:key_id], generated_key_id
157
157
  assert_equal 1024, key[:key_length]
158
- assert_includes ['R', 'rsa'], key[:key_type]
158
+ assert_includes %w[R rsa], key[:key_type]
159
159
  assert_equal user_name, key[:name]
160
160
  refute key[:private], key
161
161
  refute key.key?(:trust)
162
162
  end
163
163
  end
164
164
 
165
- describe '.import' do
166
- it 'handle duplicate public key' do
165
+ describe ".import" do
166
+ it "handle duplicate public key" do
167
167
  generated_key_id
168
168
  assert_equal [], IOStreams::Pgp.import(key: public_key)
169
169
  end
170
170
 
171
- describe 'without keys' do
171
+ describe "without keys" do
172
172
  before do
173
173
  @public_key = public_key
174
174
  # There is a timing issue with creating and then deleting keys.
@@ -177,7 +177,7 @@ class PgpTest < Minitest::Test
177
177
  IOStreams::Pgp.delete_keys(email: email, public: true, private: true)
178
178
  end
179
179
 
180
- it 'imports ascii public key' do
180
+ it "imports ascii public key" do
181
181
  assert keys = IOStreams::Pgp.import(key: @public_key)
182
182
  assert_equal 1, keys.size
183
183
  assert key = keys.first
@@ -188,7 +188,7 @@ class PgpTest < Minitest::Test
188
188
  refute key[:private], key
189
189
  end
190
190
 
191
- it 'imports binary public key' do
191
+ it "imports binary public key" do
192
192
  assert keys = IOStreams::Pgp.import(key: @public_key)
193
193
  assert_equal 1, keys.size
194
194
  assert key = keys.first
@@ -200,6 +200,5 @@ class PgpTest < Minitest::Test
200
200
  end
201
201
  end
202
202
  end
203
-
204
203
  end
205
204
  end
@@ -1,9 +1,9 @@
1
- require_relative 'test_helper'
1
+ require_relative "test_helper"
2
2
 
3
3
  class PgpWriterTest < Minitest::Test
4
4
  describe IOStreams::Pgp::Writer do
5
5
  let :temp_file do
6
- Tempfile.new('iostreams')
6
+ Tempfile.new("iostreams")
7
7
  end
8
8
 
9
9
  let :file_name do
@@ -11,7 +11,7 @@ class PgpWriterTest < Minitest::Test
11
11
  end
12
12
 
13
13
  let :decrypted do
14
- file_name = File.join(File.dirname(__FILE__), 'files', 'text.txt')
14
+ file_name = File.join(File.dirname(__FILE__), "files", "text.txt")
15
15
  File.read(file_name)
16
16
  end
17
17
 
@@ -19,51 +19,51 @@ class PgpWriterTest < Minitest::Test
19
19
  temp_file.delete
20
20
  end
21
21
 
22
- describe '.file' do
23
- it 'writes encrypted text file' do
24
- IOStreams::Pgp::Writer.file(file_name, recipient: 'receiver@example.org') do |io|
22
+ describe ".file" do
23
+ it "writes encrypted text file" do
24
+ IOStreams::Pgp::Writer.file(file_name, recipient: "receiver@example.org") do |io|
25
25
  io.write(decrypted)
26
26
  end
27
27
 
28
- result = IOStreams::Pgp::Reader.file(file_name, passphrase: 'receiver_passphrase', &:read)
28
+ result = IOStreams::Pgp::Reader.file(file_name, passphrase: "receiver_passphrase", &:read)
29
29
  assert_equal decrypted, result
30
30
  end
31
31
 
32
- it 'writes encrypted binary file' do
33
- binary_file_name = File.join(File.dirname(__FILE__), 'files', 'spreadsheet.xlsx')
34
- binary_data = File.open(binary_file_name, 'rb') { |file| file.read }
32
+ it "writes encrypted binary file" do
33
+ binary_file_name = File.join(File.dirname(__FILE__), "files", "spreadsheet.xlsx")
34
+ binary_data = File.open(binary_file_name, "rb", &:read)
35
35
 
36
- File.open(binary_file_name, 'rb') do |input|
37
- IOStreams::Pgp::Writer.file(file_name, recipient: 'receiver@example.org') do |output|
36
+ File.open(binary_file_name, "rb") do |input|
37
+ IOStreams::Pgp::Writer.file(file_name, recipient: "receiver@example.org") do |output|
38
38
  IO.copy_stream(input, output)
39
39
  end
40
40
  end
41
41
 
42
- result = IOStreams::Pgp::Reader.file(file_name, passphrase: 'receiver_passphrase', &:read)
42
+ result = IOStreams::Pgp::Reader.file(file_name, passphrase: "receiver_passphrase", &:read)
43
43
  assert_equal binary_data, result
44
44
  end
45
45
 
46
- it 'writes and signs encrypted file' do
47
- IOStreams::Pgp::Writer.file(file_name, recipient: 'receiver@example.org', signer: 'sender@example.org', signer_passphrase: 'sender_passphrase') do |io|
46
+ it "writes and signs encrypted file" do
47
+ IOStreams::Pgp::Writer.file(file_name, recipient: "receiver@example.org", signer: "sender@example.org", signer_passphrase: "sender_passphrase") do |io|
48
48
  io.write(decrypted)
49
49
  end
50
50
 
51
- result = IOStreams::Pgp::Reader.file(file_name, passphrase: 'receiver_passphrase', &:read)
51
+ result = IOStreams::Pgp::Reader.file(file_name, passphrase: "receiver_passphrase", &:read)
52
52
  assert_equal decrypted, result
53
53
  end
54
54
 
55
- it 'fails with bad signer passphrase' do
56
- skip 'GnuPG v2.1 and above passes when it should not' if IOStreams::Pgp.pgp_version.to_f >= 2.1
55
+ it "fails with bad signer passphrase" do
56
+ skip "GnuPG v2.1 and above passes when it should not" if IOStreams::Pgp.pgp_version.to_f >= 2.1
57
57
  assert_raises IOStreams::Pgp::Failure do
58
- IOStreams::Pgp::Writer.file(file_name, recipient: 'receiver@example.org', signer: 'sender@example.org', signer_passphrase: 'BAD') do |io|
58
+ IOStreams::Pgp::Writer.file(file_name, recipient: "receiver@example.org", signer: "sender@example.org", signer_passphrase: "BAD") do |io|
59
59
  io.write(decrypted)
60
60
  end
61
61
  end
62
62
  end
63
63
 
64
- it 'fails with bad recipient' do
64
+ it "fails with bad recipient" do
65
65
  assert_raises IOStreams::Pgp::Failure do
66
- IOStreams::Pgp::Writer.file(file_name, recipient: 'BAD@example.org', signer: 'sender@example.org', signer_passphrase: 'sender_passphrase') do |io|
66
+ IOStreams::Pgp::Writer.file(file_name, recipient: "BAD@example.org", signer: "sender@example.org", signer_passphrase: "sender_passphrase") do |io|
67
67
  io.write(decrypted)
68
68
  # Allow process to terminate
69
69
  sleep 1
@@ -72,25 +72,24 @@ class PgpWriterTest < Minitest::Test
72
72
  end
73
73
  end
74
74
 
75
- it 'fails with bad signer' do
75
+ it "fails with bad signer" do
76
76
  assert_raises IOStreams::Pgp::Failure do
77
- IOStreams::Pgp::Writer.file(file_name, recipient: 'receiver@example.org', signer: 'BAD@example.org', signer_passphrase: 'sender_passphrase') do |io|
77
+ IOStreams::Pgp::Writer.file(file_name, recipient: "receiver@example.org", signer: "BAD@example.org", signer_passphrase: "sender_passphrase") do |io|
78
78
  io.write(decrypted)
79
79
  end
80
80
  end
81
81
  end
82
82
 
83
- it 'writes to a stream' do
84
- io_string = StringIO.new(''.b)
85
- IOStreams::Pgp::Writer.stream(io_string, recipient: 'receiver@example.org', signer: 'sender@example.org', signer_passphrase: 'sender_passphrase') do |io|
83
+ it "writes to a stream" do
84
+ io_string = StringIO.new("".b)
85
+ IOStreams::Pgp::Writer.stream(io_string, recipient: "receiver@example.org", signer: "sender@example.org", signer_passphrase: "sender_passphrase") do |io|
86
86
  io.write(decrypted)
87
87
  end
88
88
 
89
89
  io = StringIO.new(io_string.string)
90
- result = IOStreams::Pgp::Reader.stream(io, passphrase: 'receiver_passphrase', &:read)
90
+ result = IOStreams::Pgp::Reader.stream(io, passphrase: "receiver_passphrase", &:read)
91
91
  assert_equal decrypted, result
92
92
  end
93
-
94
93
  end
95
94
  end
96
95
  end