my_obfuscate 0.5.2 → 0.5.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dbec233cd6cde0de00dcdbe9a73f83101cb45f1c
4
- data.tar.gz: eceb2de80135082243e460db1b4f2942893a0a74
3
+ metadata.gz: 8e7f50293f88ff7eea7bdce3905110af4602229c
4
+ data.tar.gz: 4008d4d1bb153fde2125dabcf2afdcbef334fbdc
5
5
  SHA512:
6
- metadata.gz: f25d3f9af557cfe0073d1e3281fd55b6ebdcde8a6ce3094482f37f08ca27d3ddcd4a2857abd52858be599d4a67dd3fc3b550bc82f48746844d60510310e020bb
7
- data.tar.gz: 88c6afd3a7fd91b42a37a233cec81e1b66ce984c12fa6faa91e11fd006aa255e3dff9bfb7583cf85fe831711a5133948610b4165eaabf23d147ee12bacdeaa44
6
+ metadata.gz: 77a9e4325cabd6434e89928d6c1939f914cad6bfe0289618c4a91f67a4c6d237c27a81e98ae43a5b4913b75b1504a1723cebd0f9f1829a938bcea249dd36270c
7
+ data.tar.gz: b55e7c9b10453a22b77c8231a2f9665393aff73bc1fbcda9bf48959ad3a1846042943dc27d7d4a96cf8c9cb991589139d5caa4323ae753a44cc1163b0b47ed3e
data/CHANGES CHANGED
@@ -1,2 +1,3 @@
1
+ 10/24/2014 - Postgres handles empty trailing fields.
1
2
  7/17/2013 - Switch Postgres to use COPY statements and refactor internals. Thanks @samuelreh!
2
3
  3/4/2013 - Switch to the ffaker gem for speed. Add WalkerMethod and an English language frequency dictionary for generating random texts.
@@ -10,7 +10,7 @@ class MyObfuscate
10
10
  # We wrap it in an array to keep it consistent with MySql bulk
11
11
  # obfuscation (multiple rows per insert statement)
12
12
  def rows_to_be_inserted(line)
13
- row = line.split(/\t/)
13
+ row = line.split(/\t/, -1)
14
14
  row.last && row.last.strip!
15
15
 
16
16
  row.collect! do |value|
@@ -1,3 +1,3 @@
1
1
  class MyObfuscate
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.3"
3
3
  end
@@ -6,101 +6,101 @@ describe MyObfuscate::ConfigApplicator do
6
6
  it "should work on email addresses" do
7
7
  100.times do
8
8
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else"], {:a => {:type => :email}}, [:a, :b])
9
- new_row.length.should == 2
10
- new_row.first.should =~ /^[\w\.]+\@(\w+\.){2,3}[a-f0-9]{5}\.example\.com$/
9
+ expect(new_row.length).to eq(2)
10
+ expect(new_row.first).to match(/^[\w\.]+\@(\w+\.){2,3}[a-f0-9]{5}\.example\.com$/)
11
11
  end
12
12
  end
13
13
 
14
14
  it "should work on strings" do
15
15
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "something crazy"], {:b => {:type => :string, :length => 7}}, [:a, :b, :c])
16
- new_row.length.should == 3
17
- new_row[1].length.should == 7
18
- new_row[1].should_not == "something_else"
16
+ expect(new_row.length).to eq(3)
17
+ expect(new_row[1].length).to eq(7)
18
+ expect(new_row[1]).not_to eq("something_else")
19
19
  end
20
20
 
21
21
  describe "conditional directives" do
22
22
  it "should honor :unless conditionals" do
23
23
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a=> {:type => :fixed, :string => "123", :unless => lambda { |row| row[:a] == "blah" }}}, [:a, :b, :c])
24
- new_row[0].should_not == "123"
25
- new_row[0].should == "blah"
24
+ expect(new_row[0]).not_to eq("123")
25
+ expect(new_row[0]).to eq("blah")
26
26
 
27
27
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a=> {:type => :fixed, :string => "123", :unless => lambda { |row| row[:a] == "not blah" }}}, [:a, :b, :c])
28
- new_row[0].should == "123"
28
+ expect(new_row[0]).to eq("123")
29
29
 
30
30
  new_row = MyObfuscate::ConfigApplicator.apply_table_config([nil, "something_else", "5"], {:a=> {:type => :fixed, :string => "123", :unless => :nil}, :b=> {:type => :fixed, :string => "123", :unless => :nil}}, [:a, :b, :c])
31
- new_row[0].should == nil
32
- new_row[1].should == "123"
31
+ expect(new_row[0]).to eq(nil)
32
+ expect(new_row[1]).to eq("123")
33
33
 
34
34
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(['', "something_else", "5"], {:a=> {:type => :fixed, :string => "123", :unless => :blank}, :b=> {:type => :fixed, :string => "123", :unless => :blank}}, [:a, :b, :c])
35
- new_row[0].should == ''
36
- new_row[1].should == "123"
35
+ expect(new_row[0]).to eq('')
36
+ expect(new_row[1]).to eq("123")
37
37
  end
38
38
 
39
39
  it "should honor :if conditionals" do
40
40
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a=> {:type => :fixed, :string => "123", :if => lambda { |row| row[:a] == "blah" }}}, [:a, :b, :c])
41
- new_row[0].should == "123"
41
+ expect(new_row[0]).to eq("123")
42
42
 
43
43
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a=> {:type => :fixed, :string => "123", :if=> lambda { |row| row[:a] == "not blah" }}}, [:a, :b, :c])
44
- new_row[0].should_not == "123"
45
- new_row[0].should == "blah"
44
+ expect(new_row[0]).not_to eq("123")
45
+ expect(new_row[0]).to eq("blah")
46
46
 
47
47
  new_row = MyObfuscate::ConfigApplicator.apply_table_config([nil, "something_else", "5"], {:a=> {:type => :fixed, :string => "123", :if => :nil}, :b=> {:type => :fixed, :string => "123", :if => :nil}}, [:a, :b, :c])
48
- new_row[0].should == "123"
49
- new_row[1].should == "something_else"
48
+ expect(new_row[0]).to eq("123")
49
+ expect(new_row[1]).to eq("something_else")
50
50
 
51
51
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(['', "something_else", "5"], {:a=> {:type => :fixed, :string => "123", :if => :blank}, :b=> {:type => :fixed, :string => "123", :if => :blank}}, [:a, :b, :c])
52
- new_row[0].should == "123"
53
- new_row[1].should == "something_else"
52
+ expect(new_row[0]).to eq("123")
53
+ expect(new_row[1]).to eq("something_else")
54
54
  end
55
55
 
56
56
  it "should supply the original row values to the conditional" do
57
57
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else"], {:a => {:type => :fixed, :string => "123"}, :b => {:type => :fixed, :string => "yup", :if => lambda { |row| row[:a] == "blah" }}}, [:a, :b])
58
- new_row[0].should == "123"
59
- new_row[1].should == "yup"
58
+ expect(new_row[0]).to eq("123")
59
+ expect(new_row[1]).to eq("yup")
60
60
  end
61
61
 
62
62
  it "should honor combined :unless and :if conditionals" do
63
63
  #both true
64
64
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a=> {:type => :fixed, :string => "123", :if => lambda { |row| row[:a] == "blah" }, :unless => lambda { |row| row[:b] == "something_else" }}}, [:a, :b, :c])
65
- new_row[0].should == "blah"
65
+ expect(new_row[0]).to eq("blah")
66
66
 
67
67
  #both false
68
68
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a=> {:type => :fixed, :string => "123", :if => lambda { |row| row[:a] == "not blah" }, :unless => lambda { |row| row[:b] == "not something_else" }}}, [:a, :b, :c])
69
- new_row[0].should == "blah"
69
+ expect(new_row[0]).to eq("blah")
70
70
 
71
71
  #if true, #unless false
72
72
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a=> {:type => :fixed, :string => "123", :if => lambda { |row| row[:a] == "blah" }, :unless => lambda { |row| row[:b] == "not something_else" }}}, [:a, :b, :c])
73
- new_row[0].should == "123"
73
+ expect(new_row[0]).to eq("123")
74
74
 
75
75
  #if false, #unless true
76
76
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a=> {:type => :fixed, :string => "123", :if => lambda { |row| row[:a] == "not blah" }, :unless => lambda { |row| row[:b] == "something_else" }}}, [:a, :b, :c])
77
- new_row[0].should == "blah"
77
+ expect(new_row[0]).to eq("blah")
78
78
  end
79
79
  end
80
80
 
81
81
  it "should be able to generate random integers in ranges" do
82
82
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:c => {:type => :integer, :between => 10..100}}, [:a, :b, :c])
83
- new_row.length.should == 3
84
- new_row[2].to_i.to_s.should == new_row[2] # It should be an integer.
85
- new_row[2].should_not == "5"
83
+ expect(new_row.length).to eq(3)
84
+ expect(new_row[2].to_i.to_s).to eq(new_row[2]) # It should be an integer.
85
+ expect(new_row[2]).not_to eq("5")
86
86
  end
87
87
 
88
88
  it "should be able to substitute fixed strings" do
89
89
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:b => {:type => :fixed, :string => "hello"}}, [:a, :b, :c])
90
- new_row.length.should == 3
91
- new_row[1].should == "hello"
90
+ expect(new_row.length).to eq(3)
91
+ expect(new_row[1]).to eq("hello")
92
92
  end
93
93
 
94
94
  it "should be able to substitute a proc that returns a string" do
95
95
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:b => {:type => :fixed, :string => proc { "Hello World" }}}, [:a, :b, :c])
96
- new_row.length.should == 3
97
- new_row[1].should == "Hello World"
96
+ expect(new_row.length).to eq(3)
97
+ expect(new_row[1]).to eq("Hello World")
98
98
  end
99
99
 
100
100
  it "should provide the row to the proc" do
101
101
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:b => {:type => :fixed, :string => proc { |a| a[:b] }}}, [:a, :b, :c])
102
- new_row.length.should == 3
103
- new_row[1].should == "something_else"
102
+ expect(new_row.length).to eq(3)
103
+ expect(new_row[1]).to eq("something_else")
104
104
  end
105
105
 
106
106
  it "should be able to substitute fixed strings from a random set" do
@@ -109,154 +109,154 @@ describe MyObfuscate::ConfigApplicator do
109
109
  guard = 0
110
110
  while !looking_for.empty? && guard < 1000
111
111
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a => {:type => :fixed, :one_of => ["hello", "world"]}}, [:a, :b, :c])
112
- new_row.length.should == 3
113
- original_looking_for.should include(new_row[0])
112
+ expect(new_row.length).to eq(3)
113
+ expect(original_looking_for).to include(new_row[0])
114
114
  looking_for.delete new_row[0]
115
115
  guard += 1
116
116
  end
117
- looking_for.should be_empty
117
+ expect(looking_for).to be_empty
118
118
  end
119
119
 
120
120
  it "should treat a symbol in the column definition as an implicit { :type => symbol }" do
121
121
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:b => :null, :a => :keep}, [:a, :b, :c])
122
- new_row.length.should == 3
123
- new_row[0].should == "blah"
124
- new_row[1].should == nil
122
+ expect(new_row.length).to eq(3)
123
+ expect(new_row[0]).to eq("blah")
124
+ expect(new_row[1]).to eq(nil)
125
125
  end
126
126
 
127
127
  it "should be able to set things NULL" do
128
128
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:b => {:type => :null}}, [:a, :b, :c])
129
- new_row.length.should == 3
130
- new_row[1].should == nil
129
+ expect(new_row.length).to eq(3)
130
+ expect(new_row[1]).to eq(nil)
131
131
  end
132
132
 
133
133
  it "should be able to :keep the value the same" do
134
134
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:b => {:type => :keep}}, [:a, :b, :c])
135
- new_row.length.should == 3
136
- new_row[1].should == "something_else"
135
+ expect(new_row.length).to eq(3)
136
+ expect(new_row[1]).to eq("something_else")
137
137
  end
138
138
 
139
139
  it "should keep the value when given an unknown type, but should display a warning" do
140
140
  $stderr = error_output = StringIO.new
141
141
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:b => {:type => :unknown_type}}, [:a, :b, :c])
142
142
  $stderr = STDERR
143
- new_row.length.should == 3
144
- new_row[1].should == "something_else"
143
+ expect(new_row.length).to eq(3)
144
+ expect(new_row[1]).to eq("something_else")
145
145
  error_output.rewind
146
- error_output.read.should =~ /Keeping a column value by.*?unknown_type/
146
+ expect(error_output.read).to match(/Keeping a column value by.*?unknown_type/)
147
147
  end
148
148
 
149
149
  it "should be able to substitute lorem ipsum text" do
150
150
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a => :lorem, :b => {:type => :lorem, :number => 2}}, [:a, :b, :c])
151
- new_row.length.should == 3
152
- new_row[0].should_not == "blah"
153
- new_row[0].should_not =~ /\w\.(?!\Z)/
154
- new_row[1].should_not == "something_else"
155
- new_row[1].should =~ /\w\.(?!\Z)/
151
+ expect(new_row.length).to eq(3)
152
+ expect(new_row[0]).not_to eq("blah")
153
+ expect(new_row[0]).not_to match(/\w\.(?!\Z)/)
154
+ expect(new_row[1]).not_to eq("something_else")
155
+ expect(new_row[1]).to match(/\w\.(?!\Z)/)
156
156
  end
157
157
 
158
158
  it "should be able to generate an :company" do
159
159
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["Smith and Sons", "something_else", "5"], {:a => :company}, [:a, :b, :c])
160
- new_row.length.should == 3
161
- new_row[0].should_not == "Smith and Sons"
162
- new_row[0].should =~ /\w+/
160
+ expect(new_row.length).to eq(3)
161
+ expect(new_row[0]).not_to eq("Smith and Sons")
162
+ expect(new_row[0]).to match(/\w+/)
163
163
  end
164
164
 
165
165
  it "should be able to generate an :url" do
166
166
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["http://mystuff.blogger.com", "something_else", "5"], {:a => :url}, [:a, :b, :c])
167
- new_row.length.should == 3
168
- new_row[0].should_not == "http://mystuff.blogger.com"
169
- new_row[0].should =~ /http:\/\/\w+/
167
+ expect(new_row.length).to eq(3)
168
+ expect(new_row[0]).not_to eq("http://mystuff.blogger.com")
169
+ expect(new_row[0]).to match(/http:\/\/\w+/)
170
170
  end
171
171
 
172
172
  it "should be able to generate an :ipv4" do
173
173
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["1.2.3.4", "something_else", "5"], {:a => :ipv4}, [:a, :b, :c])
174
- new_row.length.should == 3
175
- new_row[0].should_not == "1.2.3.4"
176
- new_row[0].should =~ /\d+\.\d+\.\d+\.\d+/
174
+ expect(new_row.length).to eq(3)
175
+ expect(new_row[0]).not_to eq("1.2.3.4")
176
+ expect(new_row[0]).to match(/\d+\.\d+\.\d+\.\d+/)
177
177
  end
178
178
 
179
179
  it "should be able to generate an :ipv6" do
180
180
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["fe80:0000:0000:0000:0202:b3ff:fe1e:8329", "something_else", "5"], {:a => :ipv6}, [:a, :b, :c])
181
- new_row.length.should == 3
182
- new_row[0].should_not == "fe80:0000:0000:0000:0202:b3ff:fe1e:8329"
183
- new_row[0].should =~ /[0-9a-f:]+/
181
+ expect(new_row.length).to eq(3)
182
+ expect(new_row[0]).not_to eq("fe80:0000:0000:0000:0202:b3ff:fe1e:8329")
183
+ expect(new_row[0]).to match(/[0-9a-f:]+/)
184
184
  end
185
185
 
186
186
  it "should be able to generate an :address" do
187
187
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a => :address}, [:a, :b, :c])
188
- new_row.length.should == 3
189
- new_row[0].should_not == "blah"
190
- new_row[0].should =~ /\d+ \w/
188
+ expect(new_row.length).to eq(3)
189
+ expect(new_row[0]).not_to eq("blah")
190
+ expect(new_row[0]).to match(/\d+ \w/)
191
191
  end
192
192
 
193
193
  it "should be able to generate a :name" do
194
194
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a => :name}, [:a, :b, :c])
195
- new_row.length.should == 3
196
- new_row[0].should_not == "blah"
197
- new_row[0].should =~ / /
195
+ expect(new_row.length).to eq(3)
196
+ expect(new_row[0]).not_to eq("blah")
197
+ expect(new_row[0]).to match(/ /)
198
198
  end
199
199
 
200
200
  it "should be able to generate just a street address" do
201
201
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a => :street_address}, [:a, :b, :c])
202
- new_row.length.should == 3
203
- new_row[0].should_not == "blah"
204
- new_row[0].should =~ /\d+ \w/
202
+ expect(new_row.length).to eq(3)
203
+ expect(new_row[0]).not_to eq("blah")
204
+ expect(new_row[0]).to match(/\d+ \w/)
205
205
  end
206
206
 
207
207
  it "should be able to generate a city" do
208
208
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a => :city}, [:a, :b, :c])
209
- new_row.length.should == 3
210
- new_row[0].should_not == "blah"
209
+ expect(new_row.length).to eq(3)
210
+ expect(new_row[0]).not_to eq("blah")
211
211
  end
212
212
 
213
213
  it "should be able to generate a state" do
214
214
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a => :state}, [:a, :b, :c])
215
- new_row.length.should == 3
216
- new_row[0].should_not == "blah"
215
+ expect(new_row.length).to eq(3)
216
+ expect(new_row[0]).not_to eq("blah")
217
217
  end
218
218
 
219
219
  it "should be able to generate a zip code" do
220
220
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a => :zip_code}, [:a, :b, :c])
221
- new_row.length.should == 3
222
- new_row[0].should_not == "blah"
223
- new_row[0].should =~ /\d+/
221
+ expect(new_row.length).to eq(3)
222
+ expect(new_row[0]).not_to eq("blah")
223
+ expect(new_row[0]).to match(/\d+/)
224
224
  end
225
225
 
226
226
  it "should be able to generate a phone number" do
227
227
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["blah", "something_else", "5"], {:a => :phone}, [:a, :b, :c])
228
- new_row.length.should == 3
229
- new_row[0].should_not == "blah"
230
- new_row[0].should =~ /\d+/
228
+ expect(new_row.length).to eq(3)
229
+ expect(new_row[0]).not_to eq("blah")
230
+ expect(new_row[0]).to match(/\d+/)
231
231
  end
232
232
 
233
233
  describe "when faker generates values with quotes in them" do
234
234
  before do
235
- Faker::Address.stub(:city).and_return("O'ReillyTown")
236
- Faker::Name.stub(:name).and_return("Foo O'Reilly")
237
- Faker::Name.stub(:first_name).and_return("O'Foo")
238
- Faker::Name.stub(:last_name).and_return("O'Reilly")
239
- Faker::Lorem.stub(:sentences).with(any_args).and_return(["Foo bar O'Thingy"])
235
+ allow(Faker::Address).to receive(:city).and_return("O'ReillyTown")
236
+ allow(Faker::Name).to receive(:name).and_return("Foo O'Reilly")
237
+ allow(Faker::Name).to receive(:first_name).and_return("O'Foo")
238
+ allow(Faker::Name).to receive(:last_name).and_return("O'Reilly")
239
+ allow(Faker::Lorem).to receive(:sentences).with(any_args).and_return(["Foo bar O'Thingy"])
240
240
  end
241
241
 
242
242
  it "should remove single quotes from the value" do
243
243
  new_row = MyObfuscate::ConfigApplicator.apply_table_config(["address", "city", "first", "last", "fullname", "some text"],
244
244
  {:a => :address, :b => :city, :c => :first_name, :d => :last_name, :e => :name, :f => :lorem},
245
245
  [:a, :b, :c, :d, :e, :f])
246
- new_row.each {|value| value.should_not include("'")}
246
+ new_row.each {|value| expect(value).not_to include("'")}
247
247
  end
248
248
  end
249
249
  end
250
250
 
251
251
  describe ".row_as_hash" do
252
252
  it "will map row values into a hash with column names as keys" do
253
- MyObfuscate::ConfigApplicator.row_as_hash([1, 2, 3, 4], [:a, :b, :c, :d]).should == {:a => 1, :b => 2, :c => 3, :d => 4}
253
+ expect(MyObfuscate::ConfigApplicator.row_as_hash([1, 2, 3, 4], [:a, :b, :c, :d])).to eq({:a => 1, :b => 2, :c => 3, :d => 4})
254
254
  end
255
255
  end
256
256
 
257
257
  describe ".random_english_sentences" do
258
258
  before do
259
- File.should_receive(:read).once.and_return("hello 2")
259
+ expect(File).to receive(:read).once.and_return("hello 2")
260
260
  end
261
261
 
262
262
  after do
@@ -269,7 +269,7 @@ describe MyObfuscate::ConfigApplicator do
269
269
  end
270
270
 
271
271
  it "should make random sentences" do
272
- MyObfuscate::ConfigApplicator.random_english_sentences(2).should =~ /^(Hello( hello)+\.\s*){2}$/
272
+ expect(MyObfuscate::ConfigApplicator.random_english_sentences(2)).to match(/^(Hello( hello)+\.\s*){2}$/)
273
273
  end
274
274
  end
275
275
 
@@ -6,74 +6,74 @@ describe MyObfuscate::Mysql do
6
6
  it "should split a mysql string into fields" do
7
7
  string = "INSERT INTO `some_table` (thing1,thing2) VALUES ('bob@bob.com','bob', 'somethingelse1', 25, '2', 10, 'hi') ; "
8
8
  fields = [['bob@bob.com', 'bob', 'somethingelse1', '25', '2', '10', "hi"]]
9
- subject.rows_to_be_inserted(string).should == fields
9
+ expect(subject.rows_to_be_inserted(string)).to eq(fields)
10
10
  end
11
11
 
12
12
  it "should work ok with escaped characters" do
13
13
  string = "INSERT INTO `some_table` (thing1,thing2) VALUES ('bob,@bob.c , om', 'bo\\', b', 'some\"thin\\gel\\\\\\'se1', 25, '2', 10, 'hi', 5) ; "
14
14
  fields = [['bob,@bob.c , om', 'bo\\\', b', 'some"thin\\gel\\\\\\\'se1', '25', '2', '10', "hi", "5"]]
15
- subject.rows_to_be_inserted(string).should == fields
15
+ expect(subject.rows_to_be_inserted(string)).to eq(fields)
16
16
  end
17
17
 
18
18
  it "should work with multiple subinserts" do
19
19
  string = "INSERT INTO `some_table` (thing1,thing2) VALUES (1,2,3, '((m))(oo()s,e'), ('bob,@bob.c , om', 'bo\\', b', 'some\"thin\\gel\\\\\\'se1', 25, '2', 10, 'hi', 5) ;"
20
20
  fields = [["1", "2", "3", "((m))(oo()s,e"], ['bob,@bob.c , om', 'bo\\\', b', 'some"thin\\gel\\\\\\\'se1', '25', '2', '10', "hi", "5"]]
21
- subject.rows_to_be_inserted(string).should == fields
21
+ expect(subject.rows_to_be_inserted(string)).to eq(fields)
22
22
  end
23
23
 
24
24
  it "should work ok with NULL values" do
25
25
  string = "INSERT INTO `some_table` (thing1,thing2) VALUES (NULL , 'bob@bob.com','bob', NULL, 25, '2', NULL, 'hi', NULL ); "
26
26
  fields = [[nil, 'bob@bob.com', 'bob', nil, '25', '2', nil, "hi", nil]]
27
- subject.rows_to_be_inserted(string).should == fields
27
+ expect(subject.rows_to_be_inserted(string)).to eq(fields)
28
28
  end
29
29
 
30
30
  it "should work with empty strings" do
31
31
  string = "INSERT INTO `some_table` (thing1,thing2) VALUES (NULL , '', '' , '', 25, '2','', 'hi','') ;"
32
32
  fields = [[nil, '', '', '', '25', '2', '', "hi", '']]
33
- subject.rows_to_be_inserted(string).should == fields
33
+ expect(subject.rows_to_be_inserted(string)).to eq(fields)
34
34
  end
35
35
 
36
36
  it "should work with hex encoded blobs" do
37
37
  string = "INSERT INTO `some_table` (thing1,thing2) VALUES ('bla' , 'blobdata', 'blubb' , 0xACED00057372001F6A6176612E7574696C2E436F6C6C656) ;"
38
38
  fields = [['bla', 'blobdata', 'blubb', '0xACED00057372001F6A6176612E7574696C2E436F6C6C656']]
39
- subject.rows_to_be_inserted(string).should == fields
39
+ expect(subject.rows_to_be_inserted(string)).to eq(fields)
40
40
  end
41
41
  end
42
42
 
43
43
  describe "#make_valid_value_string" do
44
44
  it "should work with nil values" do
45
45
  value = nil
46
- subject.make_valid_value_string(value).should == 'NULL'
46
+ expect(subject.make_valid_value_string(value)).to eq('NULL')
47
47
  end
48
48
 
49
49
  it "should work with hex-encoded blob data" do
50
50
  value = "0xACED00057372001F6A6176612E7574696C2E436F6C6C656"
51
- subject.make_valid_value_string(value).should == '0xACED00057372001F6A6176612E7574696C2E436F6C6C656'
51
+ expect(subject.make_valid_value_string(value)).to eq('0xACED00057372001F6A6176612E7574696C2E436F6C6C656')
52
52
  end
53
53
 
54
54
  it "should quote hex-encoded ALIKE data" do
55
55
  value = "40x17x7"
56
- subject.make_valid_value_string(value).should == "'40x17x7'"
56
+ expect(subject.make_valid_value_string(value)).to eq("'40x17x7'")
57
57
  end
58
58
 
59
59
  it "should quote all other values" do
60
60
  value = "hello world"
61
- subject.make_valid_value_string(value).should == "'hello world'"
61
+ expect(subject.make_valid_value_string(value)).to eq("'hello world'")
62
62
  end
63
63
  end
64
64
 
65
65
  describe "#parse_insert_statement" do
66
66
  it "should return nil for other SQL syntaxes (MS SQL Server)" do
67
- subject.parse_insert_statement("INSERT [dbo].[TASKS] ([TaskID], [TaskName]) VALUES (61, N'Report Thing')").should be_nil
67
+ expect(subject.parse_insert_statement("INSERT [dbo].[TASKS] ([TaskID], [TaskName]) VALUES (61, N'Report Thing')")).to be_nil
68
68
  end
69
69
 
70
70
  it "should return nil for MySQL non-insert statements" do
71
- subject.parse_insert_statement("CREATE TABLE `some_table`;").should be_nil
71
+ expect(subject.parse_insert_statement("CREATE TABLE `some_table`;")).to be_nil
72
72
  end
73
73
 
74
74
  it "should return a hash of table name, column names for MySQL insert statements" do
75
75
  hash = subject.parse_insert_statement("INSERT INTO `some_table` (`email`, `name`, `something`, `age`) VALUES ('bob@honk.com','bob', 'some\\'thin,ge())lse1', 25),('joe@joe.com','joe', 'somethingelse2', 54);")
76
- hash.should == {:table_name => :some_table, :column_names => [:email, :name, :something, :age]}
76
+ expect(hash).to eq({:table_name => :some_table, :column_names => [:email, :name, :something, :age]})
77
77
  end
78
78
  end
79
79
 
@@ -7,42 +7,47 @@ describe MyObfuscate::Postgres do
7
7
  describe "#rows_to_be_inserted" do
8
8
  it 'splits tab seperated values' do
9
9
  line = "1 2 3 4"
10
- helper.rows_to_be_inserted(line).should == [["1","2","3","4"]]
10
+ expect(helper.rows_to_be_inserted(line)).to eq([["1","2","3","4"]])
11
+ end
12
+
13
+ it "preserves empty strings at the end of a line" do
14
+ line = "1 2 3 4 "
15
+ expect(helper.rows_to_be_inserted(line)).to eq([["1","2","3","4",""]])
11
16
  end
12
17
 
13
18
  it 'ignores the newline character at the end of string' do
14
19
  line = "1 2 3 4\n"
15
- helper.rows_to_be_inserted(line).should == [["1","2","3","4"]]
20
+ expect(helper.rows_to_be_inserted(line)).to eq([["1","2","3","4"]])
16
21
  end
17
22
 
18
23
  it "doesn't ignore newlines due to empty strings" do
19
24
  line = "1 2 3 \n"
20
- helper.rows_to_be_inserted(line).should == [["1","2","3",""]]
25
+ expect(helper.rows_to_be_inserted(line)).to eq([["1","2","3",""]])
21
26
  end
22
27
 
23
28
  it "doesn't ignore newline characters in the string" do
24
29
  line = "1 2 3\n4 5"
25
- helper.rows_to_be_inserted(line).should == [["1","2","3\n4","5"]]
30
+ expect(helper.rows_to_be_inserted(line)).to eq([["1","2","3\n4","5"]])
26
31
  end
27
32
 
28
33
  it "preserves empty strings in the middle of the string" do
29
34
  line = "1 2 4"
30
- helper.rows_to_be_inserted(line).should == [["1","2","","4"]]
35
+ expect(helper.rows_to_be_inserted(line)).to eq([["1","2","","4"]])
31
36
  end
32
37
 
33
38
  it "preserves newline characters in the middle of the string" do
34
39
  line = "1 2 \n 4"
35
- helper.rows_to_be_inserted(line).should == [["1","2","\n","4"]]
40
+ expect(helper.rows_to_be_inserted(line)).to eq([["1","2","\n","4"]])
36
41
  end
37
42
 
38
43
  it "replaces \\N with nil" do
39
44
  line = "1 2 \\N 4"
40
- helper.rows_to_be_inserted(line).should == [["1","2",nil,"4"]]
45
+ expect(helper.rows_to_be_inserted(line)).to eq([["1","2",nil,"4"]])
41
46
  end
42
47
 
43
48
  it "replaces \\N\n with nil" do
44
49
  line = "1 2 3 \\N\n"
45
- helper.rows_to_be_inserted(line).should == [["1","2","3",nil]]
50
+ expect(helper.rows_to_be_inserted(line)).to eq([["1","2","3",nil]])
46
51
  end
47
52
  end
48
53
 
@@ -50,14 +55,14 @@ describe MyObfuscate::Postgres do
50
55
  it 'parses table name and column names' do
51
56
  line = "COPY some_table (id, email, name, something) FROM stdin;"
52
57
  hash = helper.parse_copy_statement(line)
53
- hash[:table_name].should == :some_table
54
- hash[:column_names].should == [:id, :email, :name, :something]
58
+ expect(hash[:table_name]).to eq(:some_table)
59
+ expect(hash[:column_names]).to eq([:id, :email, :name, :something])
55
60
  end
56
61
  end
57
62
 
58
63
  describe "#make_insert_statement" do
59
64
  it 'creates a string with tab delminted' do
60
- helper.make_insert_statement(:some_table, [:id, :name], ['1', '2']).should == "1 2"
65
+ expect(helper.make_insert_statement(:some_table, [:id, :name], ['1', '2'])).to eq("1 2")
61
66
  end
62
67
  end
63
68
  end
@@ -4,15 +4,15 @@ describe MyObfuscate::SqlServer do
4
4
  describe "#parse_insert_statement" do
5
5
  it "should return a hash of table_name, column_names for SQL Server input statements" do
6
6
  hash = subject.parse_insert_statement("INSERT [dbo].[TASKS] ([TaskID], [TaskName]) VALUES (61, N'Report Thing')")
7
- hash.should == { :table_name => :TASKS, :column_names => [:TaskID, :TaskName] }
7
+ expect(hash).to eq({ :table_name => :TASKS, :column_names => [:TaskID, :TaskName] })
8
8
  end
9
9
 
10
10
  it "should return nil for SQL Server non-insert statements" do
11
- subject.parse_insert_statement("CREATE TABLE [dbo].[WORKFLOW](").should be_nil
11
+ expect(subject.parse_insert_statement("CREATE TABLE [dbo].[WORKFLOW](")).to be_nil
12
12
  end
13
13
 
14
14
  it "should return nil for non-SQL Server insert statements (MySQL)" do
15
- subject.parse_insert_statement("INSERT INTO `some_table` (`email`, `name`, `something`, `age`) VALUES ('bob@honk.com','bob', 'some\\'thin,ge())lse1', 25),('joe@joe.com','joe', 'somethingelse2', 54);").should be_nil
15
+ expect(subject.parse_insert_statement("INSERT INTO `some_table` (`email`, `name`, `something`, `age`) VALUES ('bob@honk.com','bob', 'some\\'thin,ge())lse1', 25),('joe@joe.com','joe', 'somethingelse2', 54);")).to be_nil
16
16
  end
17
17
  end
18
18
 
@@ -20,39 +20,39 @@ describe MyObfuscate::SqlServer do
20
20
  it "should split a SQL Server string into fields" do
21
21
  string = "INSERT [dbo].[some_table] ([thing1],[thing2]) VALUES (N'bob@bob.com',N'bob', N'somethingelse1',25, '2', 10, 'hi', CAST(0x00009E1A00000000 AS DATETIME)) ; "
22
22
  fields = [['bob@bob.com', 'bob', 'somethingelse1', '25', '2', '10', "hi", "CAST(0x00009E1A00000000 AS DATETIME)"]]
23
- subject.rows_to_be_inserted(string).should == fields
23
+ expect(subject.rows_to_be_inserted(string)).to eq(fields)
24
24
  end
25
25
 
26
26
  it "should work ok with single quote escape" do
27
27
  string = "INSERT [dbo].[some_table] ([thing1],[thing2]) VALUES (N'bob,@bob.c , om', 'bo'', b', N'some\"thingel''se1', 25, '2', 10, 'hi', 5) ; "
28
28
  fields = [['bob,@bob.c , om', "bo'', b", "some\"thingel''se1", '25', '2', '10', "hi", "5"]]
29
- subject.rows_to_be_inserted(string).should == fields
29
+ expect(subject.rows_to_be_inserted(string)).to eq(fields)
30
30
  end
31
31
 
32
32
  it "should work ok with NULL values" do
33
33
  string = "INSERT [dbo].[some_table] ([thing1],[thing2]) VALUES (NULL , N'bob@bob.com','bob', NULL, 25, N'2', NULL, 'hi', NULL ); "
34
34
  fields = [[nil, 'bob@bob.com', 'bob', nil, '25', '2', nil, "hi", nil]]
35
- subject.rows_to_be_inserted(string).should == fields
35
+ expect(subject.rows_to_be_inserted(string)).to eq(fields)
36
36
  end
37
37
 
38
38
  it "should work with empty strings" do
39
39
  string = "INSERT [dbo].[some_table] ([thing1],[thing2]) VALUES (NULL , N'', '' , '', 25, '2','', N'hi','') ;"
40
40
  fields = [[nil, '', '','', '25', '2', '', "hi", '']]
41
- subject.rows_to_be_inserted(string).should == fields
41
+ expect(subject.rows_to_be_inserted(string)).to eq(fields)
42
42
  end
43
43
  end
44
44
 
45
45
  describe "#make_valid_value_string" do
46
46
  it "should output 'NULL' when the value is nil" do
47
- subject.make_valid_value_string(nil).should == "NULL"
47
+ expect(subject.make_valid_value_string(nil)).to eq("NULL")
48
48
  end
49
49
 
50
50
  it "should enclose the value in quotes if it's a string" do
51
- subject.make_valid_value_string("something").should == "N'something'"
51
+ expect(subject.make_valid_value_string("something")).to eq("N'something'")
52
52
  end
53
53
 
54
54
  it "should not enclose the value in quotes if it is a method call" do
55
- subject.make_valid_value_string("CAST(0x00009E1A00000000 AS DATETIME)").should == "CAST(0x00009E1A00000000 AS DATETIME)"
55
+ expect(subject.make_valid_value_string("CAST(0x00009E1A00000000 AS DATETIME)")).to eq("CAST(0x00009E1A00000000 AS DATETIME)")
56
56
  end
57
57
  end
58
58
  end
@@ -14,12 +14,12 @@ describe MyObfuscate do
14
14
  it "should yield each subinsert and reassemble the result" do
15
15
  count = 0
16
16
  reassembled = MyObfuscate.new.reassembling_each_insert(@test_insert, "some_table", @column_names) do |sub_insert|
17
- sub_insert.should == @test_insert_passes.shift
17
+ expect(sub_insert).to eq(@test_insert_passes.shift)
18
18
  count += 1
19
19
  sub_insert
20
20
  end
21
- count.should == 2
22
- reassembled.should == @test_insert
21
+ expect(count).to eq(2)
22
+ expect(reassembled).to eq(@test_insert)
23
23
  end
24
24
  end
25
25
 
@@ -74,25 +74,25 @@ COPY some_table_to_keep (a, b) FROM stdin;
74
74
  end
75
75
 
76
76
  it "is able to obfuscate single column tables" do
77
- output_string.should_not include("1\n2\n")
78
- output_string.should match(/\d\n\d\n/)
77
+ expect(output_string).not_to include("1\n2\n")
78
+ expect(output_string).to match(/\d\n\d\n/)
79
79
  end
80
80
 
81
81
  it "is able to truncate tables" do
82
- output_string.should_not include("1\t2\t3\t4")
82
+ expect(output_string).not_to include("1\t2\t3\t4")
83
83
  end
84
84
 
85
85
  it "can obfuscate the tables" do
86
- output_string.should include("COPY some_table (id, email, name, something, age) FROM stdin;\n")
87
- output_string.should match(/1\t.*\t\S{8}\tmoose\t\d{2}\n/)
86
+ expect(output_string).to include("COPY some_table (id, email, name, something, age) FROM stdin;\n")
87
+ expect(output_string).to match(/1\t.*\t\S{8}\tmoose\t\d{2}\n/)
88
88
  end
89
89
 
90
90
  it "can skip nils" do
91
- output_string.should match(/\d\n\d\n\\N/)
91
+ expect(output_string).to match(/\d\n\d\n\\N/)
92
92
  end
93
93
 
94
94
  it "is able to keep tables" do
95
- output_string.should include("5\t6")
95
+ expect(output_string).to include("5\t6")
96
96
  end
97
97
 
98
98
  context "when dump contains INSERT statement" do
@@ -118,7 +118,7 @@ COPY some_table_to_keep (a, b) FROM stdin;
118
118
  ddo.obfuscate(input, output)
119
119
  input.rewind
120
120
  output.rewind
121
- output.read.should == string
121
+ expect(output.read).to eq(string)
122
122
  end
123
123
  end
124
124
 
@@ -137,9 +137,9 @@ COPY some_table_to_keep (a, b) FROM stdin;
137
137
  end
138
138
 
139
139
  it "should raise an error if a column name can't be found" do
140
- lambda {
140
+ expect {
141
141
  @ddo.obfuscate(@database_dump, @output)
142
- }.should raise_error
142
+ }.to raise_error
143
143
  end
144
144
  end
145
145
 
@@ -176,35 +176,35 @@ COPY some_table_to_keep (a, b) FROM stdin;
176
176
  end
177
177
 
178
178
  it "should be able to truncate tables" do
179
- @output_string.should_not include("INSERT INTO `another_table`")
180
- @output_string.should include("INSERT INTO `one_more_table`")
179
+ expect(@output_string).not_to include("INSERT INTO `another_table`")
180
+ expect(@output_string).to include("INSERT INTO `one_more_table`")
181
181
  end
182
182
 
183
183
  it "should be able to declare tables to keep" do
184
- @output_string.should include("INSERT INTO `some_table_to_keep` (`a`, `b`, `c`, `d`) VALUES (1,2,3,4), (5,6,7,8);")
184
+ expect(@output_string).to include("INSERT INTO `some_table_to_keep` (`a`, `b`, `c`, `d`) VALUES (1,2,3,4), (5,6,7,8);")
185
185
  end
186
186
 
187
187
  it "should ignore tables that it doesn't know about, but should warn" do
188
- @output_string.should include("INSERT INTO `an_ignored_table` (`col`, `col2`) VALUES ('hello','kjhjd^&dkjh'), ('hello1','kjhj!'), ('hello2','moose!!');")
188
+ expect(@output_string).to include("INSERT INTO `an_ignored_table` (`col`, `col2`) VALUES ('hello','kjhjd^&dkjh'), ('hello1','kjhj!'), ('hello2','moose!!');")
189
189
  @error_output.rewind
190
- @error_output.read.should =~ /an_ignored_table was not specified in the config/
190
+ expect(@error_output.read).to match(/an_ignored_table was not specified in the config/)
191
191
  end
192
192
 
193
193
  it "should obfuscate the tables" do
194
- @output_string.should include("INSERT INTO `some_table` (`email`, `name`, `something`, `age`) VALUES (")
195
- @output_string.should include("INSERT INTO `one_more_table` (`a`, `password`, `c`, `d,d`) VALUES (")
196
- @output_string.should include("'some\\'thin,ge())lse1'")
197
- @output_string.should include("INSERT INTO `one_more_table` (`a`, `password`, `c`, `d,d`) VALUES ('hello','monkey',NULL),('hello1','monkey',NULL),('hello2','monkey',NULL);")
198
- @output_string.should_not include("INSERT INTO `one_more_table` (`a`, `password`, `c`, `d,d`) VALUES ('hello','kjhjd^&dkjh', 'aawefjkafe'), ('hello1','kjhj!', 892938), ('hello2','moose!!', NULL);")
199
- @output_string.should_not include("INSERT INTO `one_more_table` (`a`, `password`, `c`, `d,d`) VALUES ('hello','kjhjd^&dkjh','aawefjkafe'),('hello1','kjhj!',892938),('hello2','moose!!',NULL);")
200
- @output_string.should_not include("INSERT INTO `some_table` (`email`, `name`, `something`, `age`) VALUES ('bob@honk.com','bob', 'some\\'thin,ge())lse1', 25),('joe@joe.com','joe', 'somethingelse2', 54);")
194
+ expect(@output_string).to include("INSERT INTO `some_table` (`email`, `name`, `something`, `age`) VALUES (")
195
+ expect(@output_string).to include("INSERT INTO `one_more_table` (`a`, `password`, `c`, `d,d`) VALUES (")
196
+ expect(@output_string).to include("'some\\'thin,ge())lse1'")
197
+ expect(@output_string).to include("INSERT INTO `one_more_table` (`a`, `password`, `c`, `d,d`) VALUES ('hello','monkey',NULL),('hello1','monkey',NULL),('hello2','monkey',NULL);")
198
+ expect(@output_string).not_to include("INSERT INTO `one_more_table` (`a`, `password`, `c`, `d,d`) VALUES ('hello','kjhjd^&dkjh', 'aawefjkafe'), ('hello1','kjhj!', 892938), ('hello2','moose!!', NULL);")
199
+ expect(@output_string).not_to include("INSERT INTO `one_more_table` (`a`, `password`, `c`, `d,d`) VALUES ('hello','kjhjd^&dkjh','aawefjkafe'),('hello1','kjhj!',892938),('hello2','moose!!',NULL);")
200
+ expect(@output_string).not_to include("INSERT INTO `some_table` (`email`, `name`, `something`, `age`) VALUES ('bob@honk.com','bob', 'some\\'thin,ge())lse1', 25),('joe@joe.com','joe', 'somethingelse2', 54);")
201
201
  end
202
202
 
203
203
  it "honors a special case: on the people table, rows with skip_regexes that match are skipped" do
204
- @output_string.should include("('bob@honk.com',")
205
- @output_string.should include("('dontmurderme@direwolf.com',")
206
- @output_string.should_not include("joe@joe.com")
207
- @output_string.should include("example.com")
204
+ expect(@output_string).to include("('bob@honk.com',")
205
+ expect(@output_string).to include("('dontmurderme@direwolf.com',")
206
+ expect(@output_string).not_to include("joe@joe.com")
207
+ expect(@output_string).to include("example.com")
208
208
  end
209
209
  end
210
210
 
@@ -225,16 +225,16 @@ COPY some_table_to_keep (a, b) FROM stdin;
225
225
  end
226
226
 
227
227
  it "should raise an exception when an unspecified column is found" do
228
- lambda {
228
+ expect {
229
229
  @ddo.obfuscate(@database_dump, StringIO.new)
230
- }.should raise_error(/column 'something' defined/i)
230
+ }.to raise_error(/column 'something' defined/i)
231
231
  end
232
232
 
233
233
  it "should accept columns defined in globally_kept_columns" do
234
234
  @ddo.globally_kept_columns = %w[something]
235
- lambda {
235
+ expect {
236
236
  @ddo.obfuscate(@database_dump, StringIO.new)
237
- }.should_not raise_error
237
+ }.not_to raise_error
238
238
  end
239
239
  end
240
240
  end
@@ -250,7 +250,7 @@ COPY some_table_to_keep (a, b) FROM stdin;
250
250
  ddo.obfuscate(input, output)
251
251
  input.rewind
252
252
  output.rewind
253
- output.read.should == string
253
+ expect(output.read).to eq(string)
254
254
  end
255
255
  end
256
256
 
@@ -270,9 +270,9 @@ COPY some_table_to_keep (a, b) FROM stdin;
270
270
  end
271
271
 
272
272
  it "should raise an error if a column name can't be found" do
273
- lambda {
273
+ expect {
274
274
  @ddo.obfuscate(@database_dump, @output)
275
- }.should raise_error
275
+ }.to raise_error
276
276
  end
277
277
  end
278
278
 
@@ -320,42 +320,42 @@ COPY some_table_to_keep (a, b) FROM stdin;
320
320
  end
321
321
 
322
322
  it "should be able to truncate tables" do
323
- @output_string.should_not include("INSERT [dbo].[another_table]")
324
- @output_string.should include("INSERT [dbo].[one_more_table]")
323
+ expect(@output_string).not_to include("INSERT [dbo].[another_table]")
324
+ expect(@output_string).to include("INSERT [dbo].[one_more_table]")
325
325
  end
326
326
 
327
327
  it "should be able to declare tables to keep" do
328
- @output_string.should include("INSERT [dbo].[some_table_to_keep] ([a], [b], [c], [d]) VALUES (1,2,3,4);")
329
- @output_string.should include("INSERT [dbo].[some_table_to_keep] ([a], [b], [c], [d]) VALUES (5,6,7,8);")
328
+ expect(@output_string).to include("INSERT [dbo].[some_table_to_keep] ([a], [b], [c], [d]) VALUES (1,2,3,4);")
329
+ expect(@output_string).to include("INSERT [dbo].[some_table_to_keep] ([a], [b], [c], [d]) VALUES (5,6,7,8);")
330
330
  end
331
331
 
332
332
  it "should ignore tables that it doesn't know about, but should warn" do
333
- @output_string.should include("INSERT [dbo].[an_ignored_table] ([col], [col2]) VALUES (N'hello',N'kjhjd^&dkjh');")
334
- @output_string.should include("INSERT [dbo].[an_ignored_table] ([col], [col2]) VALUES (N'hello1',N'kjhj!');")
335
- @output_string.should include("INSERT [dbo].[an_ignored_table] ([col], [col2]) VALUES (N'hello2',N'moose!!');")
333
+ expect(@output_string).to include("INSERT [dbo].[an_ignored_table] ([col], [col2]) VALUES (N'hello',N'kjhjd^&dkjh');")
334
+ expect(@output_string).to include("INSERT [dbo].[an_ignored_table] ([col], [col2]) VALUES (N'hello1',N'kjhj!');")
335
+ expect(@output_string).to include("INSERT [dbo].[an_ignored_table] ([col], [col2]) VALUES (N'hello2',N'moose!!');")
336
336
  @error_output.rewind
337
- @error_output.read.should =~ /an_ignored_table was not specified in the config/
337
+ expect(@error_output.read).to match(/an_ignored_table was not specified in the config/)
338
338
  end
339
339
 
340
340
  it "should obfuscate the tables" do
341
- @output_string.should include("INSERT [dbo].[some_table] ([email], [name], [something], [age], [bday]) VALUES (")
342
- @output_string.should include("CAST(0x00009E1A00000000 AS DATETIME)")
343
- @output_string.should include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (")
344
- @output_string.should include("'some''thin,ge())lse1'")
345
- @output_string.should include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (N'hello',N'monkey',NULL);")
346
- @output_string.should include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (N'hello1',N'monkey',NULL);")
347
- @output_string.should include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (N'hello2',N'monkey',NULL);")
348
- @output_string.should_not include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (N'hello',N'kjhjd^&dkjh', N'aawefjkafe');")
349
- @output_string.should_not include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (N'hello1',N'kjhj!', 892938);")
350
- @output_string.should_not include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (N'hello2',N'moose!!', NULL);")
351
- @output_string.should_not include("INSERT [dbo].[some_table] ([email], [name], [something], [age]) VALUES (N'bob@honk.com',N'bob', N'some''thin,ge())lse1', 25, CAST(0x00009E1A00000000 AS DATETIME));")
352
- @output_string.should_not include("INSERT [dbo].[some_table] ([email], [name], [something], [age]) VALUES (N'joe@joe.com',N'joe', N'somethingelse2', 54, CAST(0x00009E1A00000000 AS DATETIME));")
341
+ expect(@output_string).to include("INSERT [dbo].[some_table] ([email], [name], [something], [age], [bday]) VALUES (")
342
+ expect(@output_string).to include("CAST(0x00009E1A00000000 AS DATETIME)")
343
+ expect(@output_string).to include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (")
344
+ expect(@output_string).to include("'some''thin,ge())lse1'")
345
+ expect(@output_string).to include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (N'hello',N'monkey',NULL);")
346
+ expect(@output_string).to include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (N'hello1',N'monkey',NULL);")
347
+ expect(@output_string).to include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (N'hello2',N'monkey',NULL);")
348
+ expect(@output_string).not_to include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (N'hello',N'kjhjd^&dkjh', N'aawefjkafe');")
349
+ expect(@output_string).not_to include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (N'hello1',N'kjhj!', 892938);")
350
+ expect(@output_string).not_to include("INSERT [dbo].[one_more_table] ([a], [password], [c], [d,d]) VALUES (N'hello2',N'moose!!', NULL);")
351
+ expect(@output_string).not_to include("INSERT [dbo].[some_table] ([email], [name], [something], [age]) VALUES (N'bob@honk.com',N'bob', N'some''thin,ge())lse1', 25, CAST(0x00009E1A00000000 AS DATETIME));")
352
+ expect(@output_string).not_to include("INSERT [dbo].[some_table] ([email], [name], [something], [age]) VALUES (N'joe@joe.com',N'joe', N'somethingelse2', 54, CAST(0x00009E1A00000000 AS DATETIME));")
353
353
  end
354
354
 
355
355
  it "honors a special case: on the people table, rows with anything@honk.com in a slot marked with :honk_email_skip do not change this slot" do
356
- @output_string.should include("(N'bob@honk.com',")
357
- @output_string.should include("(N'dontmurderme@direwolf.com',")
358
- @output_string.should_not include("joe@joe.com")
356
+ expect(@output_string).to include("(N'bob@honk.com',")
357
+ expect(@output_string).to include("(N'dontmurderme@direwolf.com',")
358
+ expect(@output_string).not_to include("joe@joe.com")
359
359
  end
360
360
  end
361
361
 
@@ -377,16 +377,16 @@ COPY some_table_to_keep (a, b) FROM stdin;
377
377
  end
378
378
 
379
379
  it "should raise an exception when an unspecified column is found" do
380
- lambda {
380
+ expect {
381
381
  @ddo.obfuscate(@database_dump, StringIO.new)
382
- }.should raise_error(/column 'something' defined/i)
382
+ }.to raise_error(/column 'something' defined/i)
383
383
  end
384
384
 
385
385
  it "should accept columns defined in globally_kept_columns" do
386
386
  @ddo.globally_kept_columns = %w[something]
387
- lambda {
387
+ expect {
388
388
  @ddo.obfuscate(@database_dump, StringIO.new)
389
- }.should_not raise_error
389
+ }.not_to raise_error
390
390
  end
391
391
  end
392
392
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: my_obfuscate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Cantino
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2014-06-19 00:00:00.000000000 Z
16
+ date: 2014-10-24 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: ffaker