data_sanity 0.0.8 → 0.0.9
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.
- data/lib/data_sanity/inspector.rb +1 -1
- data/lib/data_sanity/tasks.rb +8 -5
- data/lib/data_sanity/version.rb +1 -1
- data/lib/data_sanity.rb +0 -1
- data/spec/data_sanity/inspector_spec.rb +7 -7
- data/spec/support/sample_app/Gemfile +1 -0
- data/spec/support/sample_app/db/schema.rb +1 -10
- metadata +3 -6
- data/lib/data_sanity/models/data_inspector.rb +0 -4
- data/spec/data_sanity/models/data_inspector_spec.rb +0 -6
@@ -6,7 +6,7 @@ module DataSanity
|
|
6
6
|
attr_accessor :all, :random, :criteria, :models, :records_per_model
|
7
7
|
|
8
8
|
def initialize options = {}
|
9
|
-
options[:validate] ==
|
9
|
+
options[:validate] == "random" ? @random = true : @all = true
|
10
10
|
@records_per_model = options[:records_per_model] || CONSIDERED_RECORDS
|
11
11
|
@models = load_models
|
12
12
|
file_path = "#{Rails.root}/config/data_sanity_criteria.yml"
|
data/lib/data_sanity/tasks.rb
CHANGED
@@ -3,16 +3,14 @@ namespace :data_sanity do
|
|
3
3
|
desc 'Create data inspector model for data sanity results'
|
4
4
|
task :migrate => :environment do
|
5
5
|
Dir.chdir("#{Rails.root}") do
|
6
|
-
system "rails
|
7
|
-
system "rails g migration add_columns_to_data_inspector table_name:string table_primary_key:string primary_key_value:string validation_errors:text"
|
6
|
+
system "rails generate model DataInspector table_name:string table_primary_key:string primary_key_value:string validation_errors:text"
|
8
7
|
end
|
9
8
|
end
|
10
9
|
|
11
10
|
desc 'Destroy data inspector model for data sanity results'
|
12
|
-
task :rollback do
|
11
|
+
task :rollback => :environment do
|
13
12
|
Dir.chdir("#{Rails.root}") do
|
14
|
-
system "rails destroy
|
15
|
-
system "rails destroy migration create_data_inspector"
|
13
|
+
system "rails destroy model DataInspector"
|
16
14
|
end
|
17
15
|
end
|
18
16
|
end
|
@@ -23,4 +21,9 @@ namespace :data_sanity do
|
|
23
21
|
system "cp #{SOURCE_PATH}/data_sanity/templates/data_sanity_criteria.yml #{Rails.root}/config/."
|
24
22
|
end
|
25
23
|
end
|
24
|
+
|
25
|
+
desc 'Data Sanity run investigation'
|
26
|
+
task :investigate, :validate, :records_per_model do |t, args|
|
27
|
+
DataSanity::Inspector.new(args).investigate
|
28
|
+
end
|
26
29
|
end
|
data/lib/data_sanity/version.rb
CHANGED
data/lib/data_sanity.rb
CHANGED
@@ -11,14 +11,14 @@ describe "DataSanity::Inspector" do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should set random switch, populate default records_per_model and populate all models of the applications" do
|
14
|
-
inspector = DataSanity::Inspector.new :validate =>
|
14
|
+
inspector = DataSanity::Inspector.new :validate => "random"
|
15
15
|
inspector.random.should be_true
|
16
16
|
inspector.records_per_model.should == 1
|
17
17
|
inspector.models.should == ["Car", "Person"]
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should set random switch, populate records_per_model and populate all models of the applications" do
|
21
|
-
inspector = DataSanity::Inspector.new :validate =>
|
21
|
+
inspector = DataSanity::Inspector.new :validate => "random", :records_per_model => 5
|
22
22
|
inspector.random.should be_true
|
23
23
|
inspector.records_per_model.should == 5
|
24
24
|
inspector.models.should == ["Car", "Person"]
|
@@ -58,13 +58,13 @@ describe "DataSanity::Inspector" do
|
|
58
58
|
|
59
59
|
describe "random" do
|
60
60
|
it "should check for models with no data" do
|
61
|
-
inspector = DataSanity::Inspector.new :validate =>
|
61
|
+
inspector = DataSanity::Inspector.new :validate => "random"
|
62
62
|
inspector.investigate
|
63
63
|
DataInspector.count.should == 0
|
64
64
|
end
|
65
65
|
|
66
66
|
it "should check for errors on the model and populate fields in DataInspector" do
|
67
|
-
inspector = DataSanity::Inspector.new(:validate =>
|
67
|
+
inspector = DataSanity::Inspector.new(:validate => "random", :records_per_model => 2)
|
68
68
|
|
69
69
|
Person.new(:name => "InValid-Record").save(:validate => false)
|
70
70
|
Person.new(:name => "UnderAge", :age => 1).save(:validate => false)
|
@@ -81,13 +81,13 @@ describe "DataSanity::Inspector" do
|
|
81
81
|
end
|
82
82
|
|
83
83
|
it "should check for models with no data" do
|
84
|
-
inspector = DataSanity::Inspector.new :validate =>
|
84
|
+
inspector = DataSanity::Inspector.new :validate => "random"
|
85
85
|
inspector.investigate
|
86
86
|
DataInspector.count.should == 0
|
87
87
|
end
|
88
88
|
|
89
89
|
it "should check for errors on model based on criteria picked from data_sanity_criteria.yml" do
|
90
|
-
inspector = DataSanity::Inspector.new(:validate =>
|
90
|
+
inspector = DataSanity::Inspector.new(:validate => "random")
|
91
91
|
|
92
92
|
2.times { Person.new(:name => "Raju").save(:validate => false) }
|
93
93
|
2.times { Person.new(:name => "Saju").save(:validate => false) }
|
@@ -103,7 +103,7 @@ describe "DataSanity::Inspector" do
|
|
103
103
|
|
104
104
|
it "should check all distinct values of field for which a criteria exists" do
|
105
105
|
update_data_sanity_criteria("Car:\n make")
|
106
|
-
inspector = DataSanity::Inspector.new(:validate =>
|
106
|
+
inspector = DataSanity::Inspector.new(:validate => "random")
|
107
107
|
|
108
108
|
5.times { |i| Car.new(:name => "Car Name#{i}", :make => "Brand1").save(:validate => false) }
|
109
109
|
5.times { |i| Car.new(:name => "Car Name#{i}", :make => "Brand2").save(:validate => false) }
|
@@ -10,7 +10,7 @@
|
|
10
10
|
#
|
11
11
|
# It's strongly recommended to check this file into your version control system.
|
12
12
|
|
13
|
-
ActiveRecord::Schema.define(:version =>
|
13
|
+
ActiveRecord::Schema.define(:version => 20111205042538) do
|
14
14
|
|
15
15
|
create_table "cars", :force => true do |t|
|
16
16
|
t.string "name"
|
@@ -21,15 +21,6 @@ ActiveRecord::Schema.define(:version => 20111205065701) do
|
|
21
21
|
t.datetime "updated_at"
|
22
22
|
end
|
23
23
|
|
24
|
-
create_table "data_inspectors", :force => true do |t|
|
25
|
-
t.string "table_name"
|
26
|
-
t.string "table_primary_key"
|
27
|
-
t.string "primary_key_value"
|
28
|
-
t.text "validation_errors"
|
29
|
-
t.datetime "created_at"
|
30
|
-
t.datetime "updated_at"
|
31
|
-
end
|
32
|
-
|
33
24
|
create_table "people", :force => true do |t|
|
34
25
|
t.string "name"
|
35
26
|
t.integer "age"
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: data_sanity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 9
|
10
|
+
version: 0.0.9
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Habibullah, Rahul, Jigyasa, Jyotsna, Hephzibah, Garima
|
@@ -95,13 +95,11 @@ files:
|
|
95
95
|
- data_sanity.gemspec
|
96
96
|
- lib/data_sanity.rb
|
97
97
|
- lib/data_sanity/inspector.rb
|
98
|
-
- lib/data_sanity/models/data_inspector.rb
|
99
98
|
- lib/data_sanity/railtie.rb
|
100
99
|
- lib/data_sanity/tasks.rb
|
101
100
|
- lib/data_sanity/templates/data_sanity_criteria.yml
|
102
101
|
- lib/data_sanity/version.rb
|
103
102
|
- spec/data_sanity/inspector_spec.rb
|
104
|
-
- spec/data_sanity/models/data_inspector_spec.rb
|
105
103
|
- spec/spec_helper.rb
|
106
104
|
- spec/support/helper.rb
|
107
105
|
- spec/support/sample_app/.gitignore
|
@@ -186,7 +184,6 @@ specification_version: 3
|
|
186
184
|
summary: Gem for checking data sanity
|
187
185
|
test_files:
|
188
186
|
- spec/data_sanity/inspector_spec.rb
|
189
|
-
- spec/data_sanity/models/data_inspector_spec.rb
|
190
187
|
- spec/spec_helper.rb
|
191
188
|
- spec/support/helper.rb
|
192
189
|
- spec/support/sample_app/.gitignore
|