ncs_mdes_warehouse 0.1.1 → 0.2.0
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/.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
|