iostreams 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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