data_sanity 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -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] == :random ? @random = true : @all = true
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"
@@ -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 g migration create_data_inspector"
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 migration add_columns_to_data_inspector"
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
@@ -1,3 +1,3 @@
1
1
  module DataSanity
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
data/lib/data_sanity.rb CHANGED
@@ -4,5 +4,4 @@ SOURCE_PATH = File.dirname(__FILE__)
4
4
 
5
5
  require SOURCE_PATH + "/data_sanity/inspector"
6
6
  require SOURCE_PATH + "/data_sanity/railtie"
7
- require SOURCE_PATH + "/data_sanity/models/data_inspector"
8
7
  require SOURCE_PATH + "/data_sanity/version"
@@ -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 => :random
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 => :random, :records_per_model => 5
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 => :random
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 => :random, :records_per_model => 2)
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 => :random
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 => :random)
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 => :random)
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) }
@@ -1,5 +1,6 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  gem 'rails', '3.0.6'
4
+ gem 'rake', '0.8.7'
4
5
  gem 'sqlite3'
5
6
  gem 'data_sanity', :path => "~/data_sanity"
@@ -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 => 20111205065701) do
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: 15
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 8
10
- version: 0.0.8
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
@@ -1,4 +0,0 @@
1
- require 'active_record'
2
-
3
- class DataInspector < ActiveRecord::Base
4
- end
@@ -1,6 +0,0 @@
1
- require 'spec_helper'
2
-
3
-
4
- describe "DataInspector" do
5
-
6
- end