mongoid 7.1.7 → 7.1.8

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.
@@ -65,7 +65,7 @@ FROM <%= base_image %>
65
65
  # nio4r on JRuby: libgmp-dev
66
66
  # Snappy compression: libsnappy-dev
67
67
  # nokogiri: zlib1g-dev
68
- # Mongoid testing: tzdata
68
+ # Mongoid testing: tzdata shared-mime-info
69
69
  # Mongoid application testing: nodejs (8.x or newer)
70
70
  #
71
71
  # We currently use Python 2-compatible version of mtools, which
@@ -79,7 +79,7 @@ FROM <%= base_image %>
79
79
  libsnmp30
80
80
  krb5-user krb5-kdc krb5-admin-server libsasl2-dev libsasl2-modules-gssapi-mit
81
81
  python-pip python2.7-dev python3-pip
82
- tzdata
82
+ tzdata shared-mime-info
83
83
  ) %>
84
84
 
85
85
  # ubuntu1404 only has openjdk-7-jre-headless
@@ -139,11 +139,16 @@ FROM <%= base_image %>
139
139
 
140
140
  <% if preload? %>
141
141
 
142
- WORKDIR /app
142
+ # Current virtualenv fails with
143
+ # https://github.com/pypa/virtualenv/issues/1630
144
+ RUN python2 -m pip install 'virtualenv<20' 'mtools-legacy[mlaunch]'
143
145
 
144
- RUN curl --retry 3 -fL <%= server_download_url %> |tar xzf - && \
145
- mv mongo*/ /opt/mongodb
146
- ENV USE_OPT_MONGODB=1
146
+ RUN pip --version && \
147
+ pip install mtools-legacy[mlaunch]
148
+
149
+ <% if @env.fetch('MONGODB_VERSION') >= '4.4' %>
150
+ RUN python3 -mpip install asn1crypto oscrypto flask
151
+ <% end %>
147
152
 
148
153
  <% unless ruby_head? %>
149
154
 
@@ -168,16 +173,13 @@ FROM <%= base_image %>
168
173
  # therefore install it the manual way.
169
174
  #
170
175
  # https://pip.pypa.io/en/stable/installing/
171
- RUN curl --retry 3 -fL https://raw.githubusercontent.com/pypa/get-pip/master/2.7/get-pip.py | python
176
+ RUN curl --retry 3 -fL https://bootstrap.pypa.io/pip/2.7/get-pip.py | python
172
177
 
173
178
  <% end %>
174
179
 
175
- RUN pip --version && \
176
- pip install mtools-legacy[mlaunch]
177
-
178
- <% if @env.fetch('MONGODB_VERSION') >= '4.4' %>
179
- RUN python3 -mpip install asn1crypto oscrypto flask
180
- <% end %>
180
+ RUN curl --retry 3 -fL <%= server_download_url %> |tar xzf - && \
181
+ mv mongo*/ /opt/mongodb
182
+ ENV USE_OPT_MONGODB=1 USE_SYSTEM_PYTHON_PACKAGES=1
181
183
 
182
184
  <% end %>
183
185
 
@@ -57,13 +57,22 @@ prepare_server_from_url() {
57
57
 
58
58
  install_mlaunch_virtualenv() {
59
59
  python2 -V || true
60
- # Current virtualenv fails with
61
- # https://github.com/pypa/virtualenv/issues/1630
62
- python -m pip install 'virtualenv<20' --user
63
- venvpath="$MONGO_ORCHESTRATION_HOME"/venv
64
- python2 -m virtualenv -p python2 $venvpath
65
- . $venvpath/bin/activate
66
- pip install 'mtools-legacy[mlaunch]'
60
+ if ! python2 -m virtualenv -h >/dev/null; then
61
+ # Current virtualenv fails with
62
+ # https://github.com/pypa/virtualenv/issues/1630
63
+ python2 -m pip install 'virtualenv<20' --user
64
+ fi
65
+ if test "$USE_SYSTEM_PYTHON_PACKAGES" = 1 &&
66
+ python2 -m pip list |grep mtools-legacy
67
+ then
68
+ # Use the existing mtools-legacy
69
+ :
70
+ else
71
+ venvpath="$MONGO_ORCHESTRATION_HOME"/venv
72
+ python2 -m virtualenv -p python2 $venvpath
73
+ . $venvpath/bin/activate
74
+ pip install 'mtools-legacy[mlaunch]'
75
+ fi
67
76
  }
68
77
 
69
78
  install_mlaunch_pip() {
@@ -126,11 +135,22 @@ install_mlaunch_git() {
126
135
 
127
136
  calculate_server_args() {
128
137
  local mongo_version=`echo $MONGODB_VERSION |tr -d .`
138
+
139
+ if test -z "$mongo_version"; then
140
+ echo "$MONGODB_VERSION must be set and not contain only dots" 1>&2
141
+ exit 3
142
+ fi
143
+
129
144
  if test $mongo_version = latest; then
130
- mongo_version=44
145
+ mongo_version=49
131
146
  fi
132
147
 
133
148
  local args="--setParameter enableTestCommands=1"
149
+
150
+ if test $mongo_version -ge 47; then
151
+ args="$args --setParameter acceptAPIVersion2=1"
152
+ fi
153
+
134
154
  # diagnosticDataCollectionEnabled is a mongod-only parameter on server 3.2,
135
155
  # and mlaunch does not support specifying mongod-only parameters:
136
156
  # https://github.com/rueckstiess/mtools/issues/696
@@ -143,7 +163,7 @@ calculate_server_args() {
143
163
  args="$args --replicaset --name ruby-driver-rs --nodes 2 --arbiter"
144
164
  export HAVE_ARBITER=1
145
165
  elif test "$TOPOLOGY" = sharded-cluster; then
146
- args="$args --replicaset --nodes 1 --sharded 1 --name ruby-driver-rs"
166
+ args="$args --replicaset --nodes 2 --sharded 1 --name ruby-driver-rs"
147
167
  if test -z "$SINGLE_MONGOS"; then
148
168
  args="$args --mongos 2"
149
169
  fi
data/spec/spec_helper.rb CHANGED
@@ -35,6 +35,7 @@ require 'support/helpers'
35
35
  require 'support/macros'
36
36
  require 'support/cluster_config'
37
37
  require 'support/constraints'
38
+ require 'mrss/constraints'
38
39
 
39
40
  # Give MongoDB servers time to start up in CI environments
40
41
  if SpecConfig.instance.ci?
@@ -128,6 +129,7 @@ RSpec.configure do |config|
128
129
  config.raise_errors_for_deprecations!
129
130
  config.include(Helpers)
130
131
  config.include(Mongoid::Expectations)
132
+ config.extend(Mrss::Constraints)
131
133
  config.extend(Constraints)
132
134
  config.extend(Mongoid::Macros)
133
135
 
@@ -27,230 +27,4 @@ module Constraints
27
27
  end
28
28
  end
29
29
  end
30
-
31
- def min_server_version(version)
32
- unless version =~ /\A\d+\.\d+\z/
33
- raise ArgumentError, "Version can only be major.minor: #{version}"
34
- end
35
-
36
- before(:all) do
37
- if version > ClusterConfig.instance.server_version
38
- skip "Server version #{version} or higher required, we have #{ClusterConfig.instance.server_version}"
39
- end
40
- end
41
- end
42
-
43
- def max_server_version(version)
44
- unless version =~ /\A\d+\.\d+\z/
45
- raise ArgumentError, "Version can only be major.minor: #{version}"
46
- end
47
-
48
- before(:all) do
49
- if version < ClusterConfig.instance.short_server_version
50
- skip "Server version #{version} or lower required, we have #{ClusterConfig.instance.server_version}"
51
- end
52
- end
53
- end
54
-
55
- def require_topology(*topologies)
56
- invalid_topologies = topologies - [:single, :replica_set, :sharded]
57
-
58
- unless invalid_topologies.empty?
59
- raise ArgumentError, "Invalid topologies requested: #{invalid_topologies.join(', ')}"
60
- end
61
-
62
- before(:all) do
63
- unless topologies.include?(topology = ClusterConfig.instance.topology)
64
- skip "Topology #{topologies.join(' or ')} required, we have #{topology}"
65
- end
66
- end
67
- end
68
-
69
- def max_example_run_time(timeout)
70
- around do |example|
71
- TimeoutInterrupt.timeout(timeout, TimeoutInterrupt::Error.new("Test execution terminated after #{timeout} seconds")) do
72
- example.run
73
- end
74
- end
75
- end
76
-
77
- def require_transaction_support
78
- before(:all) do
79
- case ClusterConfig.instance.topology
80
- when :single
81
- skip 'Transactions tests require a replica set (4.0+) or a sharded cluster (4.2+)'
82
- when :replica_set
83
- unless ClusterConfig.instance.server_version >= '4.0'
84
- skip 'Transactions tests in a replica set topology require server 4.0+'
85
- end
86
- when :sharded
87
- unless ClusterConfig.instance.server_version >= '4.2'
88
- skip 'Transactions tests in a sharded cluster topology require server 4.2+'
89
- end
90
- else
91
- raise NotImplementedError
92
- end
93
- end
94
- end
95
-
96
- def require_tls
97
- before(:all) do
98
- unless SpecConfig.instance.ssl?
99
- skip "SSL not enabled"
100
- end
101
- end
102
- end
103
-
104
- def require_no_tls
105
- before(:all) do
106
- if SpecConfig.instance.ssl?
107
- skip "SSL enabled"
108
- end
109
- end
110
- end
111
-
112
- def require_local_tls
113
- require_tls
114
- end
115
-
116
- def require_no_retry_writes
117
- before(:all) do
118
- if SpecConfig.instance.retry_writes?
119
- skip "Retry writes is enabled"
120
- end
121
- end
122
- end
123
-
124
- def require_compression
125
- before(:all) do
126
- if SpecConfig.instance.compressors.nil?
127
- skip "Compression is not enabled"
128
- end
129
- end
130
- end
131
-
132
- def require_no_compression
133
- before(:all) do
134
- if SpecConfig.instance.compressors
135
- skip "Compression is enabled"
136
- end
137
- end
138
- end
139
-
140
- def ruby_version_gte(version)
141
- before(:all) do
142
- if RUBY_VERSION < version
143
- skip "Ruby version #{version} or higher required"
144
- end
145
- end
146
- end
147
-
148
- def ruby_version_lt(version)
149
- before(:all) do
150
- if RUBY_VERSION >= version
151
- skip "Ruby version less than #{version} required"
152
- end
153
- end
154
- end
155
-
156
- def require_auth
157
- before(:all) do
158
- unless ENV['AUTH'] == 'auth' || SpecConfig.instance.user || ClusterConfig.instance.auth_enabled?
159
- skip "Auth required"
160
- end
161
- end
162
- end
163
-
164
- def require_no_auth
165
- before(:all) do
166
- if ENV['AUTH'] == 'auth' || SpecConfig.instance.user || ClusterConfig.instance.auth_enabled?
167
- skip "Auth not allowed"
168
- end
169
- end
170
- end
171
-
172
- def require_no_x509_auth
173
- before(:all) do
174
- if SpecConfig.instance.x509_auth?
175
- skip "X.509 auth not allowed"
176
- end
177
- end
178
- end
179
-
180
- # Can the driver specify a write concern that won't be overridden?
181
- # (mongos 4.0+ overrides the write concern)
182
- def require_set_write_concern
183
- before(:all) do
184
- if ClusterConfig.instance.topology == :sharded && ClusterConfig.instance.short_server_version >= '4.0'
185
- skip "mongos 4.0+ overrides write concern"
186
- end
187
- end
188
- end
189
-
190
- def require_multi_shard
191
- before(:all) do
192
- if ClusterConfig.instance.topology == :sharded && SpecConfig.instance.addresses.length == 1
193
- skip 'Test requires a minimum of two shards if run in sharded topology'
194
- end
195
- end
196
- end
197
-
198
- def require_no_multi_shard
199
- before(:all) do
200
- if ClusterConfig.instance.topology == :sharded && SpecConfig.instance.addresses.length > 1
201
- skip 'Test requires a single shard if run in sharded topology'
202
- end
203
- end
204
- end
205
-
206
- def require_wired_tiger
207
- before(:all) do
208
- if ClusterConfig.instance.storage_engine != :wired_tiger
209
- skip 'Test requires WiredTiger storage engine'
210
- end
211
- end
212
- end
213
-
214
- def require_wired_tiger_on_36
215
- before(:all) do
216
- if ClusterConfig.instance.short_server_version >= '3.6'
217
- if ClusterConfig.instance.storage_engine != :wired_tiger
218
- skip 'Test requires WiredTiger storage engine on 3.6+ servers'
219
- end
220
- end
221
- end
222
- end
223
-
224
- def require_mmapv1
225
- before(:all) do
226
- if ClusterConfig.instance.storage_engine != :mmapv1
227
- skip 'Test requires MMAPv1 storage engine'
228
- end
229
- end
230
- end
231
-
232
- def require_enterprise
233
- before(:all) do
234
- unless ClusterConfig.instance.enterprise?
235
- skip 'Test requires enterprise build of MongoDB'
236
- end
237
- end
238
- end
239
-
240
- # Integration tests for SRV polling require internet connectivity to
241
- # look up SRV records and a sharded cluster configured on default port on
242
- # localhost (localhost:27017, localhost:27018).
243
- def require_default_port_deployment
244
- # Because the DNS records at test1.test.build.10gen.cc point to
245
- # localhost:27017 & localhost:27018, the test suite must have been
246
- # configured to use these addresses
247
- before(:all) do
248
- have_default_port = SpecConfig.instance.addresses.any? do |address|
249
- %w(127.0.0.1 127.0.0.1:27017 localhost localhost:27017).include?(address)
250
- end
251
- unless have_default_port
252
- skip 'This test requires the test suite to be configured for localhost:27017'
253
- end
254
- end
255
- end
256
30
  end
@@ -47,4 +47,12 @@ class SpecConfig
47
47
  def ci?
48
48
  !!ENV['CI']
49
49
  end
50
+
51
+ def rails_version
52
+ v = ENV['RAILS']
53
+ if v == ''
54
+ v = nil
55
+ end
56
+ v || '6.1'
57
+ end
50
58
  end
data.tar.gz.sig CHANGED
@@ -1,2 +1,3 @@
1
- �_{0���N�Z��}��3{d+j�q/ (�Yʩkb}j
2
- �!}Df��03vh���B_G#��e���sф�EJfn����=���D_�z��ч�gd|bK�r�ꥢ��"0���&>gN��ܲ
1
+ �
2
+ �I��u -1jRF���bI"XӪ�E;�E�:������OP�wiO[���x�.L�ϱ �'
3
+ ��vS}�
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.7
4
+ version: 7.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Durran Jordan
@@ -29,7 +29,7 @@ cert_chain:
29
29
  YoFhlyUEi7VLlqNH0H/JFttVZK6+qmLelkVNcIYVLeWOB4Lf4VxEiYGEK1ORxsrY
30
30
  iyYKJJALWY1FAInGRIlvkN+B8o3yIhq1
31
31
  -----END CERTIFICATE-----
32
- date: 2021-02-24 00:00:00.000000000 Z
32
+ date: 2021-05-08 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: activemodel
@@ -927,6 +927,7 @@ files:
927
927
  - spec/rails/controller_extension/controller_runtime_spec.rb
928
928
  - spec/rails/mongoid_spec.rb
929
929
  - spec/shared/LICENSE
930
+ - spec/shared/bin/get-mongodb-download-url
930
931
  - spec/shared/lib/mrss/child_process_helper.rb
931
932
  - spec/shared/lib/mrss/cluster_config.rb
932
933
  - spec/shared/lib/mrss/constraints.rb
@@ -934,18 +935,17 @@ files:
934
935
  - spec/shared/lib/mrss/lite_constraints.rb
935
936
  - spec/shared/lib/mrss/server_version_registry.rb
936
937
  - spec/shared/lib/mrss/spec_organizer.rb
938
+ - spec/shared/lib/mrss/utils.rb
937
939
  - spec/shared/share/Dockerfile.erb
938
940
  - spec/shared/shlib/distro.sh
939
941
  - spec/shared/shlib/server.sh
940
942
  - spec/shared/shlib/set_env.sh
941
943
  - spec/spec_helper.rb
942
944
  - spec/support/authorization.rb
943
- - spec/support/child_process_helper.rb
944
945
  - spec/support/cluster_config.rb
945
946
  - spec/support/constraints.rb
946
947
  - spec/support/expectations.rb
947
948
  - spec/support/helpers.rb
948
- - spec/support/lite_constraints.rb
949
949
  - spec/support/macros.rb
950
950
  - spec/support/session_registry.rb
951
951
  - spec/support/shared/time.rb
@@ -1270,11 +1270,13 @@ test_files:
1270
1270
  - spec/shared/lib/mrss/constraints.rb
1271
1271
  - spec/shared/lib/mrss/server_version_registry.rb
1272
1272
  - spec/shared/lib/mrss/docker_runner.rb
1273
+ - spec/shared/lib/mrss/utils.rb
1273
1274
  - spec/shared/lib/mrss/cluster_config.rb
1274
1275
  - spec/shared/lib/mrss/lite_constraints.rb
1275
1276
  - spec/shared/lib/mrss/child_process_helper.rb
1276
1277
  - spec/shared/lib/mrss/spec_organizer.rb
1277
1278
  - spec/shared/LICENSE
1279
+ - spec/shared/bin/get-mongodb-download-url
1278
1280
  - spec/shared/share/Dockerfile.erb
1279
1281
  - spec/README.md
1280
1282
  - spec/lite_spec_helper.rb
@@ -1286,9 +1288,7 @@ test_files:
1286
1288
  - spec/support/expectations.rb
1287
1289
  - spec/support/constraints.rb
1288
1290
  - spec/support/cluster_config.rb
1289
- - spec/support/lite_constraints.rb
1290
1291
  - spec/support/spec_config.rb
1291
- - spec/support/child_process_helper.rb
1292
1292
  - spec/app/models/contextable_item.rb
1293
1293
  - spec/app/models/alert.rb
1294
1294
  - spec/app/models/dragon.rb
metadata.gz.sig CHANGED
Binary file
@@ -1,76 +0,0 @@
1
- # frozen_string_literal: true
2
- # encoding: utf-8
3
-
4
- autoload :ChildProcess, 'childprocess'
5
- autoload :Tempfile, 'tempfile'
6
-
7
- module ChildProcessHelper
8
- module_function def call(cmd, env: nil, cwd: nil)
9
- process = ChildProcess.new(*cmd)
10
- process.io.inherit!
11
- if cwd
12
- process.cwd = cwd
13
- end
14
- if env
15
- env.each do |k, v|
16
- process.environment[k.to_s] = v
17
- end
18
- end
19
- process.start
20
- process.wait
21
- process
22
- end
23
-
24
- module_function def check_call(cmd, env: nil, cwd: nil)
25
- process = call(cmd, env: env, cwd: cwd)
26
- unless process.exit_code == 0
27
- raise "Failed to execute: #{cmd}"
28
- end
29
- end
30
-
31
- module_function def get_output(cmd, env: nil, cwd: nil)
32
- process = ChildProcess.new(*cmd)
33
- process.io.inherit!
34
- if cwd
35
- process.cwd = cwd
36
- end
37
- if env
38
- env.each do |k, v|
39
- process.environment[k.to_s] = v
40
- end
41
- end
42
-
43
- output = ''
44
- r, w = IO.pipe
45
-
46
- begin
47
- process.io.stdout = w
48
- process.start
49
- w.close
50
-
51
- thread = Thread.new do
52
- begin
53
- loop do
54
- output << r.readpartial(16384)
55
- end
56
- rescue EOFError
57
- end
58
- end
59
-
60
- process.wait
61
- thread.join
62
- ensure
63
- r.close
64
- end
65
-
66
- [process, output]
67
- end
68
-
69
- module_function def check_output(*args)
70
- process, output = get_output(*args)
71
- unless process.exit_code == 0
72
- raise "Failed to execute: #{args}"
73
- end
74
- output
75
- end
76
- end
@@ -1,22 +0,0 @@
1
- module LiteConstraints
2
- # Constrain tests that use TimeoutInterrupt to MRI (and Unix)
3
- def only_mri
4
- before do
5
- unless SpecConfig.instance.mri?
6
- skip "MRI required, we have #{SpecConfig.instance.platform}"
7
- end
8
- end
9
- end
10
-
11
- # This is for marking tests that fail on jruby that should
12
- # in principle work (as opposed to being fundamentally incompatible
13
- # with jruby).
14
- # Often times these failures happen only in Evergreen.
15
- def fails_on_jruby
16
- before do
17
- unless SpecConfig.instance.mri?
18
- skip "Fails on jruby"
19
- end
20
- end
21
- end
22
- end