appier 1.31.4__py2.py3-none-any.whl → 1.32.0__py2.py3-none-any.whl
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.
- appier/__init__.py +333 -52
- appier/amqp.py +29 -30
- appier/api.py +214 -212
- appier/asgi.py +54 -55
- appier/async_neo.py +46 -35
- appier/async_old.py +55 -42
- appier/asynchronous.py +7 -13
- appier/base.py +1762 -1429
- appier/bus.py +51 -52
- appier/cache.py +99 -84
- appier/common.py +9 -11
- appier/component.py +17 -19
- appier/compress.py +25 -28
- appier/config.py +96 -73
- appier/controller.py +9 -15
- appier/crypt.py +25 -21
- appier/data.py +73 -57
- appier/defines.py +191 -226
- appier/exceptions.py +103 -63
- appier/execution.py +94 -88
- appier/export.py +90 -88
- appier/extra.py +6 -13
- appier/extra_neo.py +8 -11
- appier/extra_old.py +18 -16
- appier/geo.py +57 -47
- appier/git.py +101 -90
- appier/graph.py +23 -24
- appier/http.py +520 -398
- appier/legacy.py +373 -180
- appier/log.py +90 -97
- appier/meta.py +42 -42
- appier/mock.py +32 -34
- appier/model.py +793 -681
- appier/model_a.py +208 -183
- appier/mongo.py +183 -107
- appier/observer.py +39 -31
- appier/part.py +23 -24
- appier/preferences.py +44 -47
- appier/queuing.py +78 -96
- appier/redisdb.py +40 -35
- appier/request.py +227 -175
- appier/scheduler.py +13 -18
- appier/serialize.py +37 -31
- appier/session.py +161 -147
- appier/settings.py +2 -11
- appier/smtp.py +53 -49
- appier/storage.py +39 -33
- appier/structures.py +50 -45
- appier/test/__init__.py +2 -11
- appier/test/base.py +111 -108
- appier/test/cache.py +28 -35
- appier/test/config.py +10 -19
- appier/test/crypt.py +3 -12
- appier/test/data.py +3 -12
- appier/test/exceptions.py +8 -17
- appier/test/export.py +16 -33
- appier/test/graph.py +27 -60
- appier/test/http.py +42 -54
- appier/test/legacy.py +20 -30
- appier/test/log.py +14 -35
- appier/test/mock.py +27 -123
- appier/test/model.py +79 -91
- appier/test/part.py +5 -14
- appier/test/preferences.py +5 -13
- appier/test/queuing.py +29 -37
- appier/test/request.py +61 -73
- appier/test/serialize.py +12 -23
- appier/test/session.py +10 -19
- appier/test/smtp.py +8 -14
- appier/test/structures.py +20 -24
- appier/test/typesf.py +14 -28
- appier/test/util.py +480 -438
- appier/typesf.py +251 -171
- appier/util.py +578 -407
- appier/validation.py +280 -143
- {appier-1.31.4.dist-info → appier-1.32.0.dist-info}/METADATA +6 -1
- appier-1.32.0.dist-info/RECORD +86 -0
- appier-1.31.4.dist-info/RECORD +0 -86
- {appier-1.31.4.dist-info → appier-1.32.0.dist-info}/LICENSE +0 -0
- {appier-1.31.4.dist-info → appier-1.32.0.dist-info}/WHEEL +0 -0
- {appier-1.31.4.dist-info → appier-1.32.0.dist-info}/top_level.txt +0 -0
appier/test/model.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
|
|
4
4
|
# Hive Appier Framework
|
|
5
|
-
# Copyright (c) 2008-
|
|
5
|
+
# Copyright (c) 2008-2024 Hive Solutions Lda.
|
|
6
6
|
#
|
|
7
7
|
# This file is part of Hive Appier Framework.
|
|
8
8
|
#
|
|
@@ -22,16 +22,7 @@
|
|
|
22
22
|
__author__ = "João Magalhães <joamag@hive.pt>"
|
|
23
23
|
""" The author(s) of the module """
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
""" The version of the module """
|
|
27
|
-
|
|
28
|
-
__revision__ = "$LastChangedRevision$"
|
|
29
|
-
""" The revision number of the module """
|
|
30
|
-
|
|
31
|
-
__date__ = "$LastChangedDate$"
|
|
32
|
-
""" The last change date of the module """
|
|
33
|
-
|
|
34
|
-
__copyright__ = "Copyright (c) 2008-2022 Hive Solutions Lda."
|
|
25
|
+
__copyright__ = "Copyright (c) 2008-2024 Hive Solutions Lda."
|
|
35
26
|
""" The copyright for the module """
|
|
36
27
|
|
|
37
28
|
__license__ = "Apache License, Version 2.0"
|
|
@@ -43,8 +34,8 @@ import appier
|
|
|
43
34
|
|
|
44
35
|
from . import mock
|
|
45
36
|
|
|
46
|
-
class ModelTest(unittest.TestCase):
|
|
47
37
|
|
|
38
|
+
class ModelTest(unittest.TestCase):
|
|
48
39
|
def setUp(self):
|
|
49
40
|
self.app = appier.App()
|
|
50
41
|
self.app._register_models_m(mock, "Mocks")
|
|
@@ -55,7 +46,7 @@ class ModelTest(unittest.TestCase):
|
|
|
55
46
|
adapter.drop_db()
|
|
56
47
|
|
|
57
48
|
def test_basic(self):
|
|
58
|
-
person = mock.Person(fill
|
|
49
|
+
person = mock.Person(fill=False)
|
|
59
50
|
person.name = "Name"
|
|
60
51
|
|
|
61
52
|
self.assertEqual(person.name, "Name")
|
|
@@ -85,7 +76,7 @@ class ModelTest(unittest.TestCase):
|
|
|
85
76
|
self.assertEqual(bool(person), False)
|
|
86
77
|
|
|
87
78
|
def test_find(self):
|
|
88
|
-
result = mock.Person.find(age
|
|
79
|
+
result = mock.Person.find(age=1)
|
|
89
80
|
self.assertEqual(len(result), 0)
|
|
90
81
|
|
|
91
82
|
person = mock.Person()
|
|
@@ -93,7 +84,7 @@ class ModelTest(unittest.TestCase):
|
|
|
93
84
|
person.name = "Name"
|
|
94
85
|
person.save()
|
|
95
86
|
|
|
96
|
-
result = mock.Person.find(age
|
|
87
|
+
result = mock.Person.find(age=1)
|
|
97
88
|
self.assertEqual(len(result), 1)
|
|
98
89
|
self.assertEqual(result[0].age, 1)
|
|
99
90
|
|
|
@@ -112,7 +103,8 @@ class ModelTest(unittest.TestCase):
|
|
|
112
103
|
def test_count_find(self):
|
|
113
104
|
adapter = appier.get_adapter()
|
|
114
105
|
if not adapter.name in ("mongo",):
|
|
115
|
-
if not hasattr(self, "skipTest"):
|
|
106
|
+
if not hasattr(self, "skipTest"):
|
|
107
|
+
return
|
|
116
108
|
self.skipTest("Adapter is not supported")
|
|
117
109
|
|
|
118
110
|
result = mock.Person.count()
|
|
@@ -123,10 +115,10 @@ class ModelTest(unittest.TestCase):
|
|
|
123
115
|
person.name = "Name"
|
|
124
116
|
person.save()
|
|
125
117
|
|
|
126
|
-
result = mock.Person.count(**dict(find_d
|
|
118
|
+
result = mock.Person.count(**dict(find_d=["name:eq:Name"]))
|
|
127
119
|
self.assertEqual(result, 1)
|
|
128
120
|
|
|
129
|
-
result = mock.Person.count(**dict(find_d
|
|
121
|
+
result = mock.Person.count(**dict(find_d=["name:eq:OtherName"]))
|
|
130
122
|
self.assertEqual(result, 0)
|
|
131
123
|
|
|
132
124
|
def test_delete(self):
|
|
@@ -165,14 +157,14 @@ class ModelTest(unittest.TestCase):
|
|
|
165
157
|
person = person.reload()
|
|
166
158
|
self.assertEqual(person.age, 2)
|
|
167
159
|
|
|
168
|
-
result = person.advance("age", delta
|
|
160
|
+
result = person.advance("age", delta=2)
|
|
169
161
|
self.assertEqual(result, 4)
|
|
170
162
|
self.assertEqual(person.age, 4)
|
|
171
163
|
|
|
172
164
|
person = person.reload()
|
|
173
165
|
self.assertEqual(person.age, 4)
|
|
174
166
|
|
|
175
|
-
result = person.advance("age", delta
|
|
167
|
+
result = person.advance("age", delta=-2)
|
|
176
168
|
self.assertEqual(result, 2)
|
|
177
169
|
self.assertEqual(person.age, 2)
|
|
178
170
|
|
|
@@ -218,7 +210,7 @@ class ModelTest(unittest.TestCase):
|
|
|
218
210
|
self.assertEqual(person.age, 20)
|
|
219
211
|
self.assertEqual(person.hidden, "Hidden")
|
|
220
212
|
|
|
221
|
-
person_m = person.map(all
|
|
213
|
+
person_m = person.map(all=True)
|
|
222
214
|
|
|
223
215
|
self.assertEqual(isinstance(person_m, dict), True)
|
|
224
216
|
self.assertEqual(person_m["identifier"], 1)
|
|
@@ -239,7 +231,7 @@ class ModelTest(unittest.TestCase):
|
|
|
239
231
|
person.cats = [cat]
|
|
240
232
|
person.save()
|
|
241
233
|
|
|
242
|
-
person_m = person.map(resolve
|
|
234
|
+
person_m = person.map(resolve=True, all=True)
|
|
243
235
|
|
|
244
236
|
self.assertEqual(isinstance(person_m, dict), True)
|
|
245
237
|
self.assertEqual(isinstance(person_m["cats"], list), True)
|
|
@@ -248,17 +240,17 @@ class ModelTest(unittest.TestCase):
|
|
|
248
240
|
self.assertEqual(person_m["cats"][0]["identifier_safe"], 1)
|
|
249
241
|
self.assertEqual(person_m["cats"][0]["name"], "NameCat")
|
|
250
242
|
|
|
251
|
-
person = mock.Person.get(identifier
|
|
243
|
+
person = mock.Person.get(identifier=1)
|
|
252
244
|
|
|
253
245
|
self.assertEqual(person.cats[0].name, "NameCat")
|
|
254
246
|
|
|
255
|
-
person = mock.Person.get(identifier
|
|
247
|
+
person = mock.Person.get(identifier=1)
|
|
256
248
|
|
|
257
|
-
person_m = person.map(all
|
|
249
|
+
person_m = person.map(all=True)
|
|
258
250
|
|
|
259
251
|
self.assertEqual(person_m["cats"][0], 1)
|
|
260
252
|
|
|
261
|
-
person_m = person.map(resolve
|
|
253
|
+
person_m = person.map(resolve=True, all=True)
|
|
262
254
|
|
|
263
255
|
self.assertEqual(isinstance(person_m, dict), True)
|
|
264
256
|
self.assertEqual(isinstance(person_m["cats"], list), True)
|
|
@@ -350,12 +342,12 @@ class ModelTest(unittest.TestCase):
|
|
|
350
342
|
self.assertEqual(result[0].identifier, person.identifier)
|
|
351
343
|
self.assertEqual(result[1].identifier, other.identifier)
|
|
352
344
|
|
|
353
|
-
result = mock.Person.find(sort
|
|
345
|
+
result = mock.Person.find(sort=[("identifier", -1)])
|
|
354
346
|
|
|
355
347
|
self.assertEqual(result[0].identifier, other.identifier)
|
|
356
348
|
self.assertEqual(result[1].identifier, person.identifier)
|
|
357
349
|
|
|
358
|
-
result = mock.Person.get(sort
|
|
350
|
+
result = mock.Person.get(sort=[("identifier", -1)])
|
|
359
351
|
|
|
360
352
|
self.assertEqual(result.identifier, other.identifier)
|
|
361
353
|
|
|
@@ -365,17 +357,17 @@ class ModelTest(unittest.TestCase):
|
|
|
365
357
|
person.name = "Name%d" % index
|
|
366
358
|
person.save()
|
|
367
359
|
|
|
368
|
-
result = mock.Person.find(limit
|
|
360
|
+
result = mock.Person.find(limit=5)
|
|
369
361
|
|
|
370
362
|
self.assertEqual(len(result), 5)
|
|
371
363
|
self.assertEqual(result[0].name, "Name0")
|
|
372
364
|
|
|
373
|
-
result = mock.Person.find(skip
|
|
365
|
+
result = mock.Person.find(skip=2, limit=5)
|
|
374
366
|
|
|
375
367
|
self.assertEqual(len(result), 5)
|
|
376
368
|
self.assertEqual(result[0].name, "Name2")
|
|
377
369
|
|
|
378
|
-
result = mock.Person.find(skip
|
|
370
|
+
result = mock.Person.find(skip=3, limit=20)
|
|
379
371
|
|
|
380
372
|
self.assertEqual(len(result), 7)
|
|
381
373
|
self.assertEqual(result[0].name, "Name3")
|
|
@@ -398,27 +390,27 @@ class ModelTest(unittest.TestCase):
|
|
|
398
390
|
person.cats = [cat]
|
|
399
391
|
person.save()
|
|
400
392
|
|
|
401
|
-
person = mock.Person.get(identifier
|
|
393
|
+
person = mock.Person.get(identifier=1)
|
|
402
394
|
|
|
403
395
|
self.assertEqual(person.cats[0].name, "NameCat")
|
|
404
396
|
|
|
405
397
|
person.cats = mock.Person.cats["type"]([cat])
|
|
406
398
|
person.save()
|
|
407
399
|
|
|
408
|
-
person = mock.Person.get(identifier
|
|
400
|
+
person = mock.Person.get(identifier=1)
|
|
409
401
|
|
|
410
402
|
self.assertEqual(person.cats.is_resolved(), False)
|
|
411
403
|
self.assertEqual(person.car, None)
|
|
412
404
|
self.assertEqual(person.cats[0].name, "NameCat")
|
|
413
405
|
|
|
414
|
-
person = mock.Person.get(identifier
|
|
406
|
+
person = mock.Person.get(identifier=1, map=True)
|
|
415
407
|
|
|
416
408
|
self.assertEqual(isinstance(person, dict), True)
|
|
417
409
|
self.assertEqual(isinstance(person["cats"], list), True)
|
|
418
410
|
self.assertEqual(isinstance(person["cats"][0], int), True)
|
|
419
411
|
self.assertEqual(len(person["cats"]), 1)
|
|
420
412
|
|
|
421
|
-
person = mock.Person.get(identifier
|
|
413
|
+
person = mock.Person.get(identifier=1, eager=("cats",))
|
|
422
414
|
|
|
423
415
|
self.assertEqual(isinstance(person.cats, appier.References), True)
|
|
424
416
|
self.assertEqual(isinstance(person.cats[0].friend, appier.Reference), True)
|
|
@@ -427,22 +419,20 @@ class ModelTest(unittest.TestCase):
|
|
|
427
419
|
self.assertEqual(len(person.cats), 1)
|
|
428
420
|
self.assertEqual(person.cats[0].name, "NameCat")
|
|
429
421
|
|
|
430
|
-
person = mock.Person.get(
|
|
431
|
-
identifier = 1,
|
|
432
|
-
map = True,
|
|
433
|
-
eager = ("cats",)
|
|
434
|
-
)
|
|
422
|
+
person = mock.Person.get(identifier=1, map=True, eager=("cats",))
|
|
435
423
|
|
|
436
424
|
self.assertEqual(isinstance(person, dict), True)
|
|
437
425
|
self.assertEqual(isinstance(person["cats"], list), True)
|
|
438
426
|
self.assertEqual(isinstance(person["cats"][0], dict), True)
|
|
439
427
|
self.assertEqual(isinstance(person["cats"], appier.References), False)
|
|
440
|
-
self.assertEqual(
|
|
428
|
+
self.assertEqual(
|
|
429
|
+
isinstance(person["cats"][0]["friend"], appier.Reference), False
|
|
430
|
+
)
|
|
441
431
|
self.assertEqual(len(person["cats"]), 1)
|
|
442
432
|
self.assertEqual(person["cats"][0]["name"], "NameCat")
|
|
443
433
|
self.assertEqual(person["cats"][0]["friend"], 2)
|
|
444
434
|
|
|
445
|
-
person = mock.Person.get(identifier
|
|
435
|
+
person = mock.Person.get(identifier=1, eager=("cats.friend",))
|
|
446
436
|
|
|
447
437
|
self.assertEqual(isinstance(person.cats, appier.References), True)
|
|
448
438
|
self.assertEqual(isinstance(person.cats[0].friend, appier.Reference), True)
|
|
@@ -452,31 +442,29 @@ class ModelTest(unittest.TestCase):
|
|
|
452
442
|
self.assertEqual(person.cats[0].name, "NameCat")
|
|
453
443
|
self.assertEqual(person.cats[0].friend.name, "NameCatFriend")
|
|
454
444
|
|
|
455
|
-
person = mock.Person.get(
|
|
456
|
-
identifier = 1,
|
|
457
|
-
map = True,
|
|
458
|
-
eager = ("cats.friend",)
|
|
459
|
-
)
|
|
445
|
+
person = mock.Person.get(identifier=1, map=True, eager=("cats.friend",))
|
|
460
446
|
|
|
461
447
|
self.assertEqual(isinstance(person, dict), True)
|
|
462
448
|
self.assertEqual(isinstance(person["cats"], list), True)
|
|
463
449
|
self.assertEqual(isinstance(person["cats"][0], dict), True)
|
|
464
450
|
self.assertEqual(isinstance(person["cats"][0]["friend"], dict), True)
|
|
465
451
|
self.assertEqual(isinstance(person["cats"], appier.References), False)
|
|
466
|
-
self.assertEqual(
|
|
452
|
+
self.assertEqual(
|
|
453
|
+
isinstance(person["cats"][0]["friend"], appier.Reference), False
|
|
454
|
+
)
|
|
467
455
|
self.assertEqual(person["cats"][0]["name"], "NameCat")
|
|
468
456
|
self.assertEqual(person["cats"][0]["friend"]["name"], "NameCatFriend")
|
|
469
457
|
|
|
470
|
-
person = mock.Person.get(identifier
|
|
458
|
+
person = mock.Person.get(identifier=1)
|
|
471
459
|
|
|
472
460
|
person.cats = []
|
|
473
461
|
person.save()
|
|
474
462
|
|
|
475
|
-
person = mock.Person.get(identifier
|
|
463
|
+
person = mock.Person.get(identifier=1)
|
|
476
464
|
|
|
477
465
|
self.assertEqual(len(person.cats), 0)
|
|
478
466
|
|
|
479
|
-
person = mock.Person.get(map
|
|
467
|
+
person = mock.Person.get(map=True, eager=("cats",))
|
|
480
468
|
|
|
481
469
|
self.assertEqual(isinstance(person, dict), True)
|
|
482
470
|
self.assertEqual(isinstance(person["cats"], list), True)
|
|
@@ -499,19 +487,19 @@ class ModelTest(unittest.TestCase):
|
|
|
499
487
|
address.street = "Address"
|
|
500
488
|
address.save()
|
|
501
489
|
|
|
502
|
-
person = mock.Person.get(identifier
|
|
490
|
+
person = mock.Person.get(identifier=1, eager_l=True)
|
|
503
491
|
person.car = car
|
|
504
492
|
person.save()
|
|
505
493
|
|
|
506
|
-
car = mock.Car.get(identifier
|
|
494
|
+
car = mock.Car.get(identifier=1, eager_l=True)
|
|
507
495
|
car.garage = garage
|
|
508
496
|
car.save()
|
|
509
497
|
|
|
510
|
-
garage = mock.Garage.get(identifier
|
|
498
|
+
garage = mock.Garage.get(identifier=1, eager_l=True)
|
|
511
499
|
garage.address = address
|
|
512
500
|
garage.save()
|
|
513
501
|
|
|
514
|
-
person = mock.Person.get(identifier
|
|
502
|
+
person = mock.Person.get(identifier=1, eager_l=True)
|
|
515
503
|
|
|
516
504
|
self.assertEqual(isinstance(person.car, appier.Reference), True)
|
|
517
505
|
self.assertEqual(person.car.is_resolved(), True)
|
|
@@ -521,7 +509,7 @@ class ModelTest(unittest.TestCase):
|
|
|
521
509
|
self.assertEqual(person.car.garage.address.is_resolved(), True)
|
|
522
510
|
self.assertEqual(person.car.garage.address.street, "Address")
|
|
523
511
|
|
|
524
|
-
person = mock.Person.get(identifier
|
|
512
|
+
person = mock.Person.get(identifier=1, eager_l=False)
|
|
525
513
|
|
|
526
514
|
self.assertEqual(isinstance(person.car, appier.Reference), True)
|
|
527
515
|
self.assertEqual(person.car.is_resolved(), False)
|
|
@@ -531,7 +519,7 @@ class ModelTest(unittest.TestCase):
|
|
|
531
519
|
self.assertEqual(person.car.garage.address.is_resolved(), False)
|
|
532
520
|
self.assertEqual(person.car.garage.address.street, "Address")
|
|
533
521
|
|
|
534
|
-
person = mock.Person.get(identifier
|
|
522
|
+
person = mock.Person.get(identifier=1)
|
|
535
523
|
|
|
536
524
|
self.assertEqual(isinstance(person.car, appier.Reference), True)
|
|
537
525
|
self.assertEqual(person.car.is_resolved(), False)
|
|
@@ -541,18 +529,18 @@ class ModelTest(unittest.TestCase):
|
|
|
541
529
|
self.assertEqual(person.car.garage.address.is_resolved(), False)
|
|
542
530
|
self.assertEqual(person.car.garage.address.street, "Address")
|
|
543
531
|
|
|
544
|
-
person = mock.Person.get(identifier
|
|
532
|
+
person = mock.Person.get(identifier=1, map=True)
|
|
545
533
|
|
|
546
534
|
self.assertEqual(person["car"]["name"], "Car")
|
|
547
535
|
self.assertEqual(person["car"]["garage"]["name"], "Garage")
|
|
548
536
|
self.assertEqual(person["car"]["garage"]["address"]["street"], "Address")
|
|
549
537
|
|
|
550
|
-
person = mock.Person.get(identifier
|
|
538
|
+
person = mock.Person.get(identifier=1, eager_l=True)
|
|
551
539
|
|
|
552
540
|
person.car.name = "CarChanged"
|
|
553
541
|
person.car.save()
|
|
554
542
|
|
|
555
|
-
person = mock.Person.get(identifier
|
|
543
|
+
person = mock.Person.get(identifier=1, eager_l=True)
|
|
556
544
|
|
|
557
545
|
self.assertEqual(person.car.name, "CarChanged")
|
|
558
546
|
|
|
@@ -570,7 +558,7 @@ class ModelTest(unittest.TestCase):
|
|
|
570
558
|
person.father = father
|
|
571
559
|
person.save()
|
|
572
560
|
|
|
573
|
-
person = mock.Person.get(identifier
|
|
561
|
+
person = mock.Person.get(identifier=1, eager_l=True)
|
|
574
562
|
|
|
575
563
|
self.assertEqual(isinstance(person.father, appier.Reference), True)
|
|
576
564
|
self.assertEqual(person.father.is_resolved(), False)
|
|
@@ -597,13 +585,13 @@ class ModelTest(unittest.TestCase):
|
|
|
597
585
|
car.name = "Car"
|
|
598
586
|
car.save()
|
|
599
587
|
|
|
600
|
-
person = mock.Person.get(identifier
|
|
588
|
+
person = mock.Person.get(identifier=1)
|
|
601
589
|
person.car = car
|
|
602
590
|
person.save()
|
|
603
591
|
|
|
604
592
|
self.assertEqual(isinstance(person.car, appier.Reference), False)
|
|
605
593
|
|
|
606
|
-
person = mock.Person.get(identifier
|
|
594
|
+
person = mock.Person.get(identifier=1)
|
|
607
595
|
|
|
608
596
|
self.assertEqual(isinstance(person.car, appier.Reference), True)
|
|
609
597
|
self.assertEqual(person.car.is_resolvable(), True)
|
|
@@ -612,7 +600,7 @@ class ModelTest(unittest.TestCase):
|
|
|
612
600
|
|
|
613
601
|
car.delete()
|
|
614
602
|
|
|
615
|
-
person = mock.Person.get(identifier
|
|
603
|
+
person = mock.Person.get(identifier=1)
|
|
616
604
|
|
|
617
605
|
self.assertEqual(isinstance(person.car, appier.Reference), True)
|
|
618
606
|
self.assertEqual(person.car.is_resolvable(), False)
|
|
@@ -628,7 +616,7 @@ class ModelTest(unittest.TestCase):
|
|
|
628
616
|
|
|
629
617
|
self.assertEqual(person.exists(), True)
|
|
630
618
|
|
|
631
|
-
person = mock.Person.get(name
|
|
619
|
+
person = mock.Person.get(name="Name")
|
|
632
620
|
|
|
633
621
|
self.assertEqual(person.exists(), True)
|
|
634
622
|
|
|
@@ -637,18 +625,18 @@ class ModelTest(unittest.TestCase):
|
|
|
637
625
|
self.assertEqual(person.exists(), False)
|
|
638
626
|
|
|
639
627
|
def test_fill(self):
|
|
640
|
-
first = mock.Person(fill
|
|
641
|
-
second = mock.Person(fill
|
|
628
|
+
first = mock.Person(fill=True)
|
|
629
|
+
second = mock.Person(fill=True)
|
|
642
630
|
|
|
643
631
|
self.assertEqual(first.info, {})
|
|
644
632
|
self.assertEqual(second.info, {})
|
|
645
633
|
self.assertNotEqual(id(first.info), id(second.info))
|
|
646
634
|
|
|
647
635
|
def test_wrap(self):
|
|
648
|
-
person = mock.Person.wrap(dict(name
|
|
636
|
+
person = mock.Person.wrap(dict(name="Person"))
|
|
649
637
|
self.assertEqual(person.name, "Person")
|
|
650
638
|
|
|
651
|
-
person = mock.Person.wrap(dict(other
|
|
639
|
+
person = mock.Person.wrap(dict(other="Other"))
|
|
652
640
|
self.assertEqual(person.other, "Other")
|
|
653
641
|
|
|
654
642
|
def test_meta(self):
|
|
@@ -664,30 +652,30 @@ class ModelTest(unittest.TestCase):
|
|
|
664
652
|
def test_meta_map(self):
|
|
665
653
|
method = appier.model.METAS["map"]
|
|
666
654
|
|
|
667
|
-
map = dict(hello
|
|
655
|
+
map = dict(hello="world")
|
|
668
656
|
result = method(map, {})
|
|
669
657
|
|
|
670
658
|
self.assertEqual(type(result), str)
|
|
671
|
-
self.assertEqual(result,
|
|
659
|
+
self.assertEqual(result, '{"hello": "world"}')
|
|
672
660
|
|
|
673
|
-
map = dict(mundo
|
|
661
|
+
map = dict(mundo="olá")
|
|
674
662
|
|
|
675
663
|
self.assertEqual(type(result), str)
|
|
676
|
-
self.assertEqual(method(map, {}),
|
|
664
|
+
self.assertEqual(method(map, {}), '{"mundo": "olá"}')
|
|
677
665
|
|
|
678
666
|
def test_meta_longmap(self):
|
|
679
667
|
method = appier.model.METAS["longmap"]
|
|
680
668
|
|
|
681
|
-
map = dict(hello
|
|
669
|
+
map = dict(hello="world")
|
|
682
670
|
result = method(map, {})
|
|
683
671
|
|
|
684
672
|
self.assertEqual(type(result), str)
|
|
685
|
-
self.assertEqual(result,
|
|
673
|
+
self.assertEqual(result, '{"hello": "world"}')
|
|
686
674
|
|
|
687
|
-
map = dict(mundo
|
|
675
|
+
map = dict(mundo="olá")
|
|
688
676
|
|
|
689
677
|
self.assertEqual(type(result), str)
|
|
690
|
-
self.assertEqual(method(map, {}),
|
|
678
|
+
self.assertEqual(method(map, {}), '{"mundo": "olá"}')
|
|
691
679
|
|
|
692
680
|
def test_is_unset(self):
|
|
693
681
|
person = mock.Person()
|
|
@@ -742,7 +730,7 @@ class ModelTest(unittest.TestCase):
|
|
|
742
730
|
person.cats = [cat]
|
|
743
731
|
person.save()
|
|
744
732
|
|
|
745
|
-
person = mock.Person.get(identifier
|
|
733
|
+
person = mock.Person.get(identifier=1)
|
|
746
734
|
person_m = person.map_v()
|
|
747
735
|
|
|
748
736
|
self.assertEqual(len(person.cats), 1)
|
|
@@ -755,7 +743,7 @@ class ModelTest(unittest.TestCase):
|
|
|
755
743
|
self.assertEqual(person_m["cats"][0]["friend"]["name"], "NameCatFriend")
|
|
756
744
|
|
|
757
745
|
person = person.reload()
|
|
758
|
-
person_m = person.map_v(resolve
|
|
746
|
+
person_m = person.map_v(resolve=False)
|
|
759
747
|
|
|
760
748
|
self.assertEqual(len(person.cats), 1)
|
|
761
749
|
self.assertEqual(isinstance(person.cats[0], int), 1)
|
|
@@ -764,8 +752,8 @@ class ModelTest(unittest.TestCase):
|
|
|
764
752
|
self.assertEqual(isinstance(person_m["cats"][0], int), True)
|
|
765
753
|
self.assertEqual(person_m["cats"][0], 1)
|
|
766
754
|
|
|
767
|
-
person = mock.Person.get(identifier
|
|
768
|
-
person_m = person.map_v(resolve
|
|
755
|
+
person = mock.Person.get(identifier=1, eager=("cats",))
|
|
756
|
+
person_m = person.map_v(resolve=False)
|
|
769
757
|
|
|
770
758
|
self.assertEqual(len(person.cats), 1)
|
|
771
759
|
self.assertEqual(isinstance(person.cats[0], dict), True)
|
|
@@ -776,8 +764,8 @@ class ModelTest(unittest.TestCase):
|
|
|
776
764
|
self.assertEqual(person_m["cats"][0]["name"], "NameCat")
|
|
777
765
|
self.assertEqual(person_m["cats"][0]["friend"], 2)
|
|
778
766
|
|
|
779
|
-
person = mock.Person.get(identifier
|
|
780
|
-
person_m = person.map_v(resolve
|
|
767
|
+
person = mock.Person.get(identifier=1, eager=("cats",))
|
|
768
|
+
person_m = person.map_v(resolve=False, evaluator="map_v")
|
|
781
769
|
|
|
782
770
|
self.assertEqual(len(person.cats), 1)
|
|
783
771
|
self.assertEqual(isinstance(person.cats[0], dict), True)
|
|
@@ -788,8 +776,8 @@ class ModelTest(unittest.TestCase):
|
|
|
788
776
|
self.assertEqual(person_m["cats"][0]["name"], "NameCat")
|
|
789
777
|
self.assertEqual(person_m["cats"][0]["friend"], 2)
|
|
790
778
|
|
|
791
|
-
person = mock.Person.get(identifier
|
|
792
|
-
person_m = person.map_v(clone
|
|
779
|
+
person = mock.Person.get(identifier=1, eager=("cats",))
|
|
780
|
+
person_m = person.map_v(clone=True, resolve=False)
|
|
793
781
|
|
|
794
782
|
self.assertEqual(isinstance(person.cats, appier.References), True)
|
|
795
783
|
self.assertEqual(person.cats.is_resolved(), True)
|
|
@@ -801,8 +789,8 @@ class ModelTest(unittest.TestCase):
|
|
|
801
789
|
self.assertEqual(person_m["cats"][0]["name"], "NameCat")
|
|
802
790
|
self.assertEqual(person_m["cats"][0]["friend"], 2)
|
|
803
791
|
|
|
804
|
-
person = mock.Person.get(identifier
|
|
805
|
-
person_m = person.map_v(resolve
|
|
792
|
+
person = mock.Person.get(identifier=1, eager=("cats.friend",))
|
|
793
|
+
person_m = person.map_v(resolve=False)
|
|
806
794
|
|
|
807
795
|
self.assertEqual(len(person.cats), 1)
|
|
808
796
|
self.assertEqual(isinstance(person.cats[0], dict), True)
|
|
@@ -813,8 +801,8 @@ class ModelTest(unittest.TestCase):
|
|
|
813
801
|
self.assertEqual(person_m["cats"][0]["name"], "NameCat")
|
|
814
802
|
self.assertEqual(person_m["cats"][0]["friend"]["name"], "NameCatFriend")
|
|
815
803
|
|
|
816
|
-
person = mock.Person.get(identifier
|
|
817
|
-
person_m = person.map_v(clone
|
|
804
|
+
person = mock.Person.get(identifier=1, eager=("cats.friend",))
|
|
805
|
+
person_m = person.map_v(clone=True, resolve=False)
|
|
818
806
|
|
|
819
807
|
self.assertEqual(isinstance(person.cats, appier.References), True)
|
|
820
808
|
self.assertEqual(person.cats.is_resolved(), True)
|
|
@@ -844,14 +832,14 @@ class ModelTest(unittest.TestCase):
|
|
|
844
832
|
self.assertEqual(person_c.identifier, 2)
|
|
845
833
|
self.assertEqual(person_c.name, "NameC")
|
|
846
834
|
|
|
847
|
-
person_c = person.clone(reset
|
|
835
|
+
person_c = person.clone(reset=False)
|
|
848
836
|
|
|
849
837
|
self.assertEqual(id(person_c.model), id(person.model))
|
|
850
838
|
self.assertEqual(person_c.model, person.model)
|
|
851
839
|
self.assertEqual(person_c.identifier, 2)
|
|
852
840
|
self.assertEqual(person_c.name, "NameC")
|
|
853
841
|
|
|
854
|
-
person_c = person.clone(deep
|
|
842
|
+
person_c = person.clone(deep=True)
|
|
855
843
|
person_c.name = "NameC2"
|
|
856
844
|
person_c.save()
|
|
857
845
|
|
appier/test/part.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
|
|
4
4
|
# Hive Appier Framework
|
|
5
|
-
# Copyright (c) 2008-
|
|
5
|
+
# Copyright (c) 2008-2024 Hive Solutions Lda.
|
|
6
6
|
#
|
|
7
7
|
# This file is part of Hive Appier Framework.
|
|
8
8
|
#
|
|
@@ -22,16 +22,7 @@
|
|
|
22
22
|
__author__ = "João Magalhães <joamag@hive.pt>"
|
|
23
23
|
""" The author(s) of the module """
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
""" The version of the module """
|
|
27
|
-
|
|
28
|
-
__revision__ = "$LastChangedRevision$"
|
|
29
|
-
""" The revision number of the module """
|
|
30
|
-
|
|
31
|
-
__date__ = "$LastChangedDate$"
|
|
32
|
-
""" The last change date of the module """
|
|
33
|
-
|
|
34
|
-
__copyright__ = "Copyright (c) 2008-2022 Hive Solutions Lda."
|
|
25
|
+
__copyright__ = "Copyright (c) 2008-2024 Hive Solutions Lda."
|
|
35
26
|
""" The copyright for the module """
|
|
36
27
|
|
|
37
28
|
__license__ = "Apache License, Version 2.0"
|
|
@@ -41,8 +32,8 @@ import unittest
|
|
|
41
32
|
|
|
42
33
|
import appier
|
|
43
34
|
|
|
44
|
-
class MockPart(appier.Part):
|
|
45
35
|
|
|
36
|
+
class MockPart(appier.Part):
|
|
46
37
|
def version(self):
|
|
47
38
|
return "1.0.0"
|
|
48
39
|
|
|
@@ -54,10 +45,10 @@ class MockPart(appier.Part):
|
|
|
54
45
|
appier.Part.unload(self)
|
|
55
46
|
self.owner.mock_loaded = False
|
|
56
47
|
|
|
57
|
-
class PartTest(unittest.TestCase):
|
|
58
48
|
|
|
49
|
+
class PartTest(unittest.TestCase):
|
|
59
50
|
def setUp(self):
|
|
60
|
-
self.app = appier.App(parts
|
|
51
|
+
self.app = appier.App(parts=(MockPart,))
|
|
61
52
|
|
|
62
53
|
def tearDown(self):
|
|
63
54
|
self.app.unload()
|
appier/test/preferences.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
|
|
4
4
|
# Hive Appier Framework
|
|
5
|
-
# Copyright (c) 2008-
|
|
5
|
+
# Copyright (c) 2008-2024 Hive Solutions Lda.
|
|
6
6
|
#
|
|
7
7
|
# This file is part of Hive Appier Framework.
|
|
8
8
|
#
|
|
@@ -22,16 +22,7 @@
|
|
|
22
22
|
__author__ = "João Magalhães <joamag@hive.pt>"
|
|
23
23
|
""" The author(s) of the module """
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
""" The version of the module """
|
|
27
|
-
|
|
28
|
-
__revision__ = "$LastChangedRevision$"
|
|
29
|
-
""" The revision number of the module """
|
|
30
|
-
|
|
31
|
-
__date__ = "$LastChangedDate$"
|
|
32
|
-
""" The last change date of the module """
|
|
33
|
-
|
|
34
|
-
__copyright__ = "Copyright (c) 2008-2022 Hive Solutions Lda."
|
|
25
|
+
__copyright__ = "Copyright (c) 2008-2024 Hive Solutions Lda."
|
|
35
26
|
""" The copyright for the module """
|
|
36
27
|
|
|
37
28
|
__license__ = "Apache License, Version 2.0"
|
|
@@ -41,8 +32,8 @@ import unittest
|
|
|
41
32
|
|
|
42
33
|
import appier
|
|
43
34
|
|
|
44
|
-
class PreferencesTest(unittest.TestCase):
|
|
45
35
|
|
|
36
|
+
class PreferencesTest(unittest.TestCase):
|
|
46
37
|
def setUp(self):
|
|
47
38
|
self.app = appier.App()
|
|
48
39
|
|
|
@@ -89,7 +80,8 @@ class PreferencesTest(unittest.TestCase):
|
|
|
89
80
|
try:
|
|
90
81
|
preferences = appier.RedisPreferences.new()
|
|
91
82
|
except Exception:
|
|
92
|
-
if not hasattr(self, "skipTest"):
|
|
83
|
+
if not hasattr(self, "skipTest"):
|
|
84
|
+
return
|
|
93
85
|
self.skipTest("No Redis server present")
|
|
94
86
|
|
|
95
87
|
preferences["first"] = 1
|