ncs_mdes_warehouse 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +2 -0
- data/CHANGELOG.md +20 -0
- data/Rakefile +2 -3
- data/generated_models/ncs_navigator/warehouse/models/two_point_zero/spec_blood.rb +3 -3
- data/lib/ncs_navigator/warehouse.rb +1 -0
- data/lib/ncs_navigator/warehouse/cli.rb +46 -1
- data/lib/ncs_navigator/warehouse/comparator.rb +257 -0
- data/lib/ncs_navigator/warehouse/data_mapper.rb +20 -0
- data/lib/ncs_navigator/warehouse/database_initializer.rb +3 -4
- data/lib/ncs_navigator/warehouse/transform_status.rb +5 -1
- data/lib/ncs_navigator/warehouse/transformers/enum_transformer.rb +18 -3
- data/lib/ncs_navigator/warehouse/updating_shell.rb +1 -0
- data/lib/ncs_navigator/warehouse/version.rb +1 -1
- data/lib/ncs_navigator/warehouse/xml_emitter.rb +95 -13
- data/ncs_mdes_warehouse.gemspec +1 -1
- data/spec/ncs_navigator/warehouse/data_mapper_spec.rb +39 -0
- data/spec/ncs_navigator/warehouse/transform_load_spec.rb +3 -1
- data/spec/ncs_navigator/warehouse/transformers/database_spec.rb +3 -3
- data/spec/ncs_navigator/warehouse/transformers/enum_transformer_spec.rb +36 -5
- data/spec/ncs_navigator/warehouse/xml_emitter_spec.rb +176 -30
- data/spec/spec_helper.rb +54 -17
- metadata +39 -38
data/spec/spec_helper.rb
CHANGED
@@ -15,11 +15,24 @@ require 'data_mapper'
|
|
15
15
|
RSpec.configure do |config|
|
16
16
|
config.treat_symbols_as_metadata_keys_with_true_values = true
|
17
17
|
|
18
|
-
|
18
|
+
##
|
19
|
+
# A mostly-default configuration to use in tests of objects that
|
20
|
+
# rely on the MDES specification so as to avoid initializing it
|
21
|
+
# multiple times. It also contains the configuration pointing to the
|
22
|
+
# test database schemas.
|
23
|
+
def spec_config
|
24
|
+
@spec_config || fail("Flag specs that use spec_config with :use_mdes or :use_database")
|
25
|
+
end
|
19
26
|
|
20
|
-
|
21
|
-
NcsNavigator::Warehouse.
|
22
|
-
|
27
|
+
def init_spec_config
|
28
|
+
@spec_config ||= NcsNavigator::Warehouse::Configuration.new.tap do |c|
|
29
|
+
c.mdes_version = spec_mdes_version
|
30
|
+
c.output_level = :quiet
|
31
|
+
c.log_file = tmpdir + 'spec.log'
|
32
|
+
c.bcdatabase_group = ENV['CI_RUBY'] ? :public_ci_postgresql9 : :local_postgresql
|
33
|
+
c.bcdatabase_entries[:working] = :mdes_warehouse_working_test
|
34
|
+
c.bcdatabase_entries[:reporting] = :mdes_warehouse_reporting_test
|
35
|
+
end
|
23
36
|
end
|
24
37
|
|
25
38
|
###### MDES model loading
|
@@ -32,20 +45,8 @@ RSpec.configure do |config|
|
|
32
45
|
ENV['SPEC_MDES_VERSION'] || NcsNavigator::Warehouse::DEFAULT_MDES_VERSION
|
33
46
|
end
|
34
47
|
|
35
|
-
##
|
36
|
-
# A mostly-default configuration to use in tests of objects that
|
37
|
-
# rely on the MDES specification so as to avoid initializing it
|
38
|
-
# multiple times.
|
39
|
-
def spec_config
|
40
|
-
@spec_config || fail("Flag specs that use spec_config with :use_mdes")
|
41
|
-
end
|
42
|
-
|
43
48
|
config.before(:each, :use_mdes) do
|
44
|
-
|
45
|
-
c.mdes_version = spec_mdes_version
|
46
|
-
c.output_level = :quiet
|
47
|
-
c.log_file = tmpdir + 'spec.log'
|
48
|
-
end
|
49
|
+
init_spec_config
|
49
50
|
end
|
50
51
|
|
51
52
|
###### modifies_warehouse_state
|
@@ -62,6 +63,42 @@ RSpec.configure do |config|
|
|
62
63
|
@global_state_preserver.restore
|
63
64
|
end
|
64
65
|
|
66
|
+
###### use_database
|
67
|
+
|
68
|
+
config.before(:each, :use_database) do
|
69
|
+
init_spec_config
|
70
|
+
|
71
|
+
$db_init ||=
|
72
|
+
begin
|
73
|
+
init = NcsNavigator::Warehouse::DatabaseInitializer.new(spec_config)
|
74
|
+
init.set_up_repository(:both)
|
75
|
+
init.replace_schema
|
76
|
+
init.clone_working_to_reporting
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
config.after(:each, :use_database) do
|
81
|
+
::DataMapper::Model.descendants.each do |model|
|
82
|
+
begin
|
83
|
+
DataMapper.repository.adapter.execute("TRUNCATE TABLE #{model.storage_name}")
|
84
|
+
rescue DataObjects::SyntaxError
|
85
|
+
# table was never created
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
###### bcdatabase
|
91
|
+
|
92
|
+
config.before(:each, :use_test_bcdatabase) do
|
93
|
+
use_test_bcdatabase
|
94
|
+
end
|
95
|
+
|
96
|
+
def use_test_bcdatabase
|
97
|
+
fail 'Use :modifies_warehouse_state with use_test_database' unless @global_state_preserver
|
98
|
+
NcsNavigator::Warehouse.bcdatabase =
|
99
|
+
Bcdatabase.load(File.expand_path('../bcdatabase', __FILE__), :transforms => [:datamapper])
|
100
|
+
end
|
101
|
+
|
65
102
|
###### tmpdir
|
66
103
|
|
67
104
|
config.after do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ncs_mdes_warehouse
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,25 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11
|
12
|
+
date: 2011-12-11 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ncs_mdes
|
16
|
-
requirement: &
|
16
|
+
requirement: &2152563420 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '0.
|
22
|
-
- - ! '>='
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: 0.4.2
|
21
|
+
version: '0.5'
|
25
22
|
type: :runtime
|
26
23
|
prerelease: false
|
27
|
-
version_requirements: *
|
24
|
+
version_requirements: *2152563420
|
28
25
|
- !ruby/object:Gem::Dependency
|
29
26
|
name: ncs_navigator_configuration
|
30
|
-
requirement: &
|
27
|
+
requirement: &2152561100 !ruby/object:Gem::Requirement
|
31
28
|
none: false
|
32
29
|
requirements:
|
33
30
|
- - ~>
|
@@ -35,10 +32,10 @@ dependencies:
|
|
35
32
|
version: '0.2'
|
36
33
|
type: :runtime
|
37
34
|
prerelease: false
|
38
|
-
version_requirements: *
|
35
|
+
version_requirements: *2152561100
|
39
36
|
- !ruby/object:Gem::Dependency
|
40
37
|
name: activesupport
|
41
|
-
requirement: &
|
38
|
+
requirement: &2152559400 !ruby/object:Gem::Requirement
|
42
39
|
none: false
|
43
40
|
requirements:
|
44
41
|
- - ~>
|
@@ -46,10 +43,10 @@ dependencies:
|
|
46
43
|
version: '3.0'
|
47
44
|
type: :runtime
|
48
45
|
prerelease: false
|
49
|
-
version_requirements: *
|
46
|
+
version_requirements: *2152559400
|
50
47
|
- !ruby/object:Gem::Dependency
|
51
48
|
name: i18n
|
52
|
-
requirement: &
|
49
|
+
requirement: &2152558860 !ruby/object:Gem::Requirement
|
53
50
|
none: false
|
54
51
|
requirements:
|
55
52
|
- - ~>
|
@@ -57,10 +54,10 @@ dependencies:
|
|
57
54
|
version: '0.4'
|
58
55
|
type: :runtime
|
59
56
|
prerelease: false
|
60
|
-
version_requirements: *
|
57
|
+
version_requirements: *2152558860
|
61
58
|
- !ruby/object:Gem::Dependency
|
62
59
|
name: thor
|
63
|
-
requirement: &
|
60
|
+
requirement: &2152558360 !ruby/object:Gem::Requirement
|
64
61
|
none: false
|
65
62
|
requirements:
|
66
63
|
- - ~>
|
@@ -68,10 +65,10 @@ dependencies:
|
|
68
65
|
version: 0.14.6
|
69
66
|
type: :runtime
|
70
67
|
prerelease: false
|
71
|
-
version_requirements: *
|
68
|
+
version_requirements: *2152558360
|
72
69
|
- !ruby/object:Gem::Dependency
|
73
70
|
name: rubyzip
|
74
|
-
requirement: &
|
71
|
+
requirement: &2152557580 !ruby/object:Gem::Requirement
|
75
72
|
none: false
|
76
73
|
requirements:
|
77
74
|
- - ~>
|
@@ -79,10 +76,10 @@ dependencies:
|
|
79
76
|
version: 0.9.4
|
80
77
|
type: :runtime
|
81
78
|
prerelease: false
|
82
|
-
version_requirements: *
|
79
|
+
version_requirements: *2152557580
|
83
80
|
- !ruby/object:Gem::Dependency
|
84
81
|
name: nokogiri
|
85
|
-
requirement: &
|
82
|
+
requirement: &2152556800 !ruby/object:Gem::Requirement
|
86
83
|
none: false
|
87
84
|
requirements:
|
88
85
|
- - ~>
|
@@ -90,10 +87,10 @@ dependencies:
|
|
90
87
|
version: 1.5.0
|
91
88
|
type: :runtime
|
92
89
|
prerelease: false
|
93
|
-
version_requirements: *
|
90
|
+
version_requirements: *2152556800
|
94
91
|
- !ruby/object:Gem::Dependency
|
95
92
|
name: builder
|
96
|
-
requirement: &
|
93
|
+
requirement: &2152556200 !ruby/object:Gem::Requirement
|
97
94
|
none: false
|
98
95
|
requirements:
|
99
96
|
- - ! '>='
|
@@ -101,10 +98,10 @@ dependencies:
|
|
101
98
|
version: 2.1.2
|
102
99
|
type: :runtime
|
103
100
|
prerelease: false
|
104
|
-
version_requirements: *
|
101
|
+
version_requirements: *2152556200
|
105
102
|
- !ruby/object:Gem::Dependency
|
106
103
|
name: data_mapper
|
107
|
-
requirement: &
|
104
|
+
requirement: &2152555680 !ruby/object:Gem::Requirement
|
108
105
|
none: false
|
109
106
|
requirements:
|
110
107
|
- - ~>
|
@@ -112,10 +109,10 @@ dependencies:
|
|
112
109
|
version: 1.2.0
|
113
110
|
type: :runtime
|
114
111
|
prerelease: false
|
115
|
-
version_requirements: *
|
112
|
+
version_requirements: *2152555680
|
116
113
|
- !ruby/object:Gem::Dependency
|
117
114
|
name: bcdatabase
|
118
|
-
requirement: &
|
115
|
+
requirement: &2152555140 !ruby/object:Gem::Requirement
|
119
116
|
none: false
|
120
117
|
requirements:
|
121
118
|
- - ~>
|
@@ -123,10 +120,10 @@ dependencies:
|
|
123
120
|
version: '1.1'
|
124
121
|
type: :runtime
|
125
122
|
prerelease: false
|
126
|
-
version_requirements: *
|
123
|
+
version_requirements: *2152555140
|
127
124
|
- !ruby/object:Gem::Dependency
|
128
125
|
name: dm-postgres-adapter
|
129
|
-
requirement: &
|
126
|
+
requirement: &2152554620 !ruby/object:Gem::Requirement
|
130
127
|
none: false
|
131
128
|
requirements:
|
132
129
|
- - ~>
|
@@ -134,10 +131,10 @@ dependencies:
|
|
134
131
|
version: 1.2.0
|
135
132
|
type: :runtime
|
136
133
|
prerelease: false
|
137
|
-
version_requirements: *
|
134
|
+
version_requirements: *2152554620
|
138
135
|
- !ruby/object:Gem::Dependency
|
139
136
|
name: rspec
|
140
|
-
requirement: &
|
137
|
+
requirement: &2152553900 !ruby/object:Gem::Requirement
|
141
138
|
none: false
|
142
139
|
requirements:
|
143
140
|
- - ~>
|
@@ -145,10 +142,10 @@ dependencies:
|
|
145
142
|
version: '2.6'
|
146
143
|
type: :development
|
147
144
|
prerelease: false
|
148
|
-
version_requirements: *
|
145
|
+
version_requirements: *2152553900
|
149
146
|
- !ruby/object:Gem::Dependency
|
150
147
|
name: rake
|
151
|
-
requirement: &
|
148
|
+
requirement: &2152553140 !ruby/object:Gem::Requirement
|
152
149
|
none: false
|
153
150
|
requirements:
|
154
151
|
- - ~>
|
@@ -156,10 +153,10 @@ dependencies:
|
|
156
153
|
version: 0.9.2
|
157
154
|
type: :development
|
158
155
|
prerelease: false
|
159
|
-
version_requirements: *
|
156
|
+
version_requirements: *2152553140
|
160
157
|
- !ruby/object:Gem::Dependency
|
161
158
|
name: yard
|
162
|
-
requirement: &
|
159
|
+
requirement: &2152552420 !ruby/object:Gem::Requirement
|
163
160
|
none: false
|
164
161
|
requirements:
|
165
162
|
- - ~>
|
@@ -167,10 +164,10 @@ dependencies:
|
|
167
164
|
version: 0.7.2
|
168
165
|
type: :development
|
169
166
|
prerelease: false
|
170
|
-
version_requirements: *
|
167
|
+
version_requirements: *2152552420
|
171
168
|
- !ruby/object:Gem::Dependency
|
172
169
|
name: ci_reporter
|
173
|
-
requirement: &
|
170
|
+
requirement: &2152551400 !ruby/object:Gem::Requirement
|
174
171
|
none: false
|
175
172
|
requirements:
|
176
173
|
- - ~>
|
@@ -178,10 +175,10 @@ dependencies:
|
|
178
175
|
version: 1.6.5
|
179
176
|
type: :development
|
180
177
|
prerelease: false
|
181
|
-
version_requirements: *
|
178
|
+
version_requirements: *2152551400
|
182
179
|
- !ruby/object:Gem::Dependency
|
183
180
|
name: fakefs
|
184
|
-
requirement: &
|
181
|
+
requirement: &2152550660 !ruby/object:Gem::Requirement
|
185
182
|
none: false
|
186
183
|
requirements:
|
187
184
|
- - ~>
|
@@ -189,7 +186,7 @@ dependencies:
|
|
189
186
|
version: 0.4.0
|
190
187
|
type: :development
|
191
188
|
prerelease: false
|
192
|
-
version_requirements: *
|
189
|
+
version_requirements: *2152550660
|
193
190
|
description:
|
194
191
|
email:
|
195
192
|
- r-sutphin@northwestern.edu
|
@@ -199,6 +196,7 @@ extensions: []
|
|
199
196
|
extra_rdoc_files: []
|
200
197
|
files:
|
201
198
|
- .gitignore
|
199
|
+
- .rspec
|
202
200
|
- .rvmrc
|
203
201
|
- .yardopts
|
204
202
|
- CHANGELOG.md
|
@@ -475,6 +473,7 @@ files:
|
|
475
473
|
- init.rakefile
|
476
474
|
- lib/ncs_navigator/warehouse.rb
|
477
475
|
- lib/ncs_navigator/warehouse/cli.rb
|
476
|
+
- lib/ncs_navigator/warehouse/comparator.rb
|
478
477
|
- lib/ncs_navigator/warehouse/configuration.rb
|
479
478
|
- lib/ncs_navigator/warehouse/configuration/file_evaluator.rb
|
480
479
|
- lib/ncs_navigator/warehouse/data_mapper.rb
|
@@ -507,6 +506,7 @@ files:
|
|
507
506
|
- spec/global_state_helper.rb
|
508
507
|
- spec/navigator.ini
|
509
508
|
- spec/ncs_navigator/warehouse/configuration_spec.rb
|
509
|
+
- spec/ncs_navigator/warehouse/data_mapper_spec.rb
|
510
510
|
- spec/ncs_navigator/warehouse/models/mdes_model_spec.rb
|
511
511
|
- spec/ncs_navigator/warehouse/postgresql/pgpass_spec.rb
|
512
512
|
- spec/ncs_navigator/warehouse/table_modeler_spec.rb
|
@@ -554,6 +554,7 @@ test_files:
|
|
554
554
|
- spec/global_state_helper.rb
|
555
555
|
- spec/navigator.ini
|
556
556
|
- spec/ncs_navigator/warehouse/configuration_spec.rb
|
557
|
+
- spec/ncs_navigator/warehouse/data_mapper_spec.rb
|
557
558
|
- spec/ncs_navigator/warehouse/models/mdes_model_spec.rb
|
558
559
|
- spec/ncs_navigator/warehouse/postgresql/pgpass_spec.rb
|
559
560
|
- spec/ncs_navigator/warehouse/table_modeler_spec.rb
|