Skip to content

Commit 59825cd

Browse files
committed
Misc updates
- Isolate test failures - admin_scripts - check_framework - migrations - test_runner - user_commands - Add support for EncryptedEmbeddedModelArrayField - Refactor - Factor _get_data_key from _get_encrypted_fields - Refactor for DRY in _get_encrypted_fields method with _field_dict helper
1 parent 13ed19a commit 59825cd

File tree

6 files changed

+286
-79
lines changed

6 files changed

+286
-79
lines changed

.github/workflows/runtests.py

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,184 @@
66
from django.core.exceptions import ImproperlyConfigured
77

88
test_apps = [
9+
# "admin_changelist",
10+
# "admin_checks",
11+
# "admin_custom_urls",
12+
# "admin_docs",
13+
# "admin_filters",
14+
# "admin_inlines",
15+
# "admin_ordering",
16+
# # "admin_scripts",
17+
# # 100+ errors of the form:
18+
# #
19+
# # File "/tmp/django_x2bciiad/tmpogmynqqo/test_project/alternate_settings.py",
20+
# # line 2
21+
# # {}, 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, \
22+
# # 'CONN_HEALTH_CHECKS': False, 'TIME_ZONE': None, 'USER': '', \
23+
# # 'PASSWORD': '', 'HOST': '', 'PORT': '', 'TEST': {'CHARSET': None, \
24+
# # 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}}}
25+
# # ^
26+
# # SyntaxError: invalid syntax
27+
# "admin_utils",
28+
# "admin_views",
29+
# "admin_widgets",
30+
# "aggregation",
31+
# "aggregation_regress",
32+
# "annotations",
33+
# "apps",
34+
# "async",
35+
# "auth_tests",
36+
# "backends",
37+
# "basic",
38+
# "bulk_create",
39+
# "cache",
40+
# # "check_framework",
41+
# # FAIL: test_collision_across_apps
42+
# # FAIL: test_collision_in_same_app
43+
# # db_table 'test_table' is used by multiple models
44+
# "constraints",
45+
# "contenttypes_tests",
46+
# "context_processors",
47+
# "custom_columns",
48+
# "custom_lookups",
49+
# "custom_managers",
50+
# "custom_pk",
51+
# "datatypes",
52+
# "dates",
53+
# "datetimes",
54+
# "db_functions",
55+
# "defer",
56+
# "defer_regress",
57+
# "delete",
58+
# "delete_regress",
59+
# "empty",
60+
# "empty_models",
61+
# "expressions",
62+
# "expressions_case",
63+
# "field_defaults",
64+
# "file_storage",
65+
# "file_uploads",
66+
# "fixtures",
67+
# "fixtures_model_package",
68+
# "fixtures_regress",
69+
# "flatpages_tests",
70+
# "force_insert_update",
71+
# "foreign_object",
72+
# "forms_tests",
73+
# "from_db_value",
74+
# "generic_inline_admin",
75+
# "generic_relations",
76+
# "generic_relations_regress",
77+
# "generic_views",
78+
# "get_earliest_or_latest",
79+
# "get_object_or_404",
80+
# "get_or_create",
81+
# "i18n",
82+
# "indexes",
83+
# "inline_formsets",
84+
# "introspection",
85+
# "invalid_models_tests",
86+
# "known_related_objects",
87+
# "lookup",
88+
# "m2m_and_m2o",
89+
# "m2m_intermediary",
90+
# "m2m_multiple",
91+
# "m2m_recursive",
92+
# "m2m_regress",
93+
# "m2m_signals",
94+
# "m2m_through",
95+
# "m2m_through_regress",
96+
# "m2o_recursive",
97+
# "managers_regress",
98+
# "many_to_many",
99+
# "many_to_one",
100+
# "many_to_one_null",
101+
# "max_lengths",
102+
# "messages_tests",
103+
# "migrate_signals",
104+
# "migration_test_data_persistence",
105+
# # "migrations",
106+
# # File "/Users/alex.clark/Developer/django-mongodb-cli/src/django/tests/\
107+
# # migrations/test_commands.py", line 1630, in patched_has_table
108+
# # raise Exception("Other connection")
109+
# # Exception: Other connection
110+
# "model_fields",
111+
# "model_forms",
112+
# "model_formsets",
113+
# "model_formsets_regress",
114+
# "model_indexes",
115+
# "model_inheritance",
116+
# "model_inheritance_regress",
117+
# "model_options",
118+
# "model_package",
119+
# "model_regress",
120+
# "model_utils",
121+
# "modeladmin",
122+
# "multiple_database",
123+
# "mutually_referential",
124+
# "nested_foreign_keys",
125+
# "null_fk",
126+
# "null_fk_ordering",
127+
# "null_queries",
128+
# "one_to_one",
129+
# "or_lookups",
130+
# "order_with_respect_to",
131+
# "ordering",
132+
# "pagination",
133+
# "prefetch_related",
134+
# "proxy_model_inheritance",
135+
# "proxy_models",
136+
# "queries",
137+
# "queryset_pickle",
138+
# "redirects_tests",
139+
# "reserved_names",
140+
# "reverse_lookup",
141+
# "save_delete_hooks",
142+
# "schema",
143+
# "select_for_update",
144+
# "select_related",
145+
# "select_related_onetoone",
146+
# "select_related_regress",
147+
# "serializers",
148+
# "servers",
149+
# "sessions_tests",
150+
# "shortcuts",
151+
# "signals",
152+
# "sitemaps_tests",
153+
# "sites_framework",
154+
# "sites_tests",
155+
# "string_lookup",
156+
# "swappable_models",
157+
# "syndication_tests",
158+
# "test_client",
159+
# "test_client_regress",
160+
# # "test_runner",
161+
# # File "/Users/alex.clark/Developer/django-mongodb-cli/src/django/tests/\
162+
# # test_runner/test_discover_runner.py", line 809, in test_mixed
163+
# # self.assertEqual(databases, {"default": True, "other": False})
164+
# # AssertionError: {'default': True, 'other': False, 'encrypted': False} !=
165+
# # {'default': True, 'other': False}
166+
# # - {'default': True, 'encrypted': False, 'other': False}
167+
# # ? --------------------
168+
# # + {'default': True, 'other': False}
169+
# "test_utils",
170+
# "timezones",
171+
# "transactions",
172+
# "unmanaged_models",
173+
# "update",
174+
# "update_only_fields",
175+
# # "user_commands",
176+
# #
177+
# # File "/tmp/django_9gkm5p03/tmpph_i4p8y/test_project/settings.py", line 2
178+
# # ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0,
179+
# # 'CONN_HEALTH_CHECKS': False, 'TIME_ZONE': None, 'USER': '', 'PASSWORD':
180+
# # '', 'HOST': '', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None,
181+
# # 'MIGRATE': True, 'MIRROR': None, 'NAME': None}}}
182+
# # ^
183+
# # SyntaxError: invalid syntax
184+
# "validation",
185+
# "view_tests",
186+
# "xor_lookups",
9187
# Add directories in django_mongodb_backend/tests
10188
*sorted(
11189
[

django_mongodb_backend/fields/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
EncryptedDecimalField,
1414
EncryptedDurationField,
1515
EncryptedEmailField,
16+
EncryptedEmbeddedModelArrayField,
1617
EncryptedEmbeddedModelField,
1718
EncryptedFieldMixin,
1819
EncryptedFloatField,
@@ -44,6 +45,7 @@
4445
"EncryptedDecimalField",
4546
"EncryptedDurationField",
4647
"EncryptedEmailField",
48+
"EncryptedEmbeddedModelArrayField",
4749
"EncryptedEmbeddedModelField",
4850
"EncryptedFieldMixin",
4951
"EncryptedFloatField",

django_mongodb_backend/fields/encryption.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
from django.db import models
22

3-
from django_mongodb_backend.fields import EmbeddedModelField
3+
from django_mongodb_backend.fields import EmbeddedModelArrayField, EmbeddedModelField
4+
5+
6+
class EncryptedEmbeddedModelArrayField(EmbeddedModelArrayField):
7+
encrypted = True
48

59

610
class EncryptedEmbeddedModelField(EmbeddedModelField):

0 commit comments

Comments
 (0)