model-bakery 1.20.1__py3-none-any.whl → 1.20.3__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.

Potentially problematic release.


This version of model-bakery might be problematic. Click here for more details.

model_bakery/__about__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.20.1"
1
+ __version__ = "1.20.3"
model_bakery/baker.py CHANGED
@@ -70,6 +70,10 @@ def _valid_quantity(quantity: Optional[Union[str, int]]) -> bool:
70
70
  return quantity is not None and (not isinstance(quantity, int) or quantity < 1)
71
71
 
72
72
 
73
+ def _is_auto_datetime_field(field: Field) -> bool:
74
+ return getattr(field, "auto_now_add", False) or getattr(field, "auto_now", False)
75
+
76
+
73
77
  def seed(seed: Union[int, float, str, bytes, bytearray, None]) -> None:
74
78
  Baker.seed(seed)
75
79
 
@@ -513,10 +517,7 @@ class Baker(Generic[M]):
513
517
  if isinstance(field, ForeignRelatedObjectsDescriptor):
514
518
  one_to_many_keys[k] = attrs.pop(k)
515
519
 
516
- if hasattr(field, "field") and (
517
- getattr(field.field, "auto_now_add", False)
518
- or getattr(field.field, "auto_now", False)
519
- ):
520
+ if hasattr(field, "field") and _is_auto_datetime_field(field.field):
520
521
  auto_now_keys[k] = attrs[k]
521
522
 
522
523
  if BAKER_CONTENTTYPES and isinstance(field, GenericForeignKey):
@@ -589,6 +590,9 @@ class Baker(Generic[M]):
589
590
  else:
590
591
  field.fill_optional = field.name in self.fill_in_optional
591
592
 
593
+ if _is_auto_datetime_field(field):
594
+ return True
595
+
592
596
  if isinstance(field, FileField) and not self.create_files:
593
597
  return True
594
598
 
@@ -699,6 +703,8 @@ class Baker(Generic[M]):
699
703
  ct_field_name = data["content_type_field"]
700
704
  oid_field_name = data["object_id_field"]
701
705
  value = data["value"]
706
+ if callable(value):
707
+ value = value()
702
708
  if is_iterator(value):
703
709
  value = next(value)
704
710
  if value is None:
@@ -714,7 +720,9 @@ class Baker(Generic[M]):
714
720
  setattr(
715
721
  instance,
716
722
  ct_field_name,
717
- contenttypes_models.ContentType.objects.get_for_model(value),
723
+ contenttypes_models.ContentType.objects.get_for_model(
724
+ value, for_concrete_model=False
725
+ ),
718
726
  )
719
727
  setattr(instance, oid_field_name, value.pk)
720
728
 
model_bakery/recipe.py CHANGED
@@ -1,4 +1,5 @@
1
1
  import collections
2
+ import copy
2
3
  import itertools
3
4
  from typing import (
4
5
  Any,
@@ -79,6 +80,8 @@ class Recipe(Generic[M]):
79
80
  mapping[k] = v.recipe.prepare(_using=_using, **recipe_attrs)
80
81
  elif isinstance(v, related):
81
82
  mapping[k] = v.make
83
+ elif isinstance(v, collections.abc.Container):
84
+ mapping[k] = copy.deepcopy(v)
82
85
 
83
86
  mapping.update(new_attrs)
84
87
  mapping.update(rel_fields_attrs)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: model-bakery
3
- Version: 1.20.1
3
+ Version: 1.20.3
4
4
  Summary: Smart object creation facility for Django.
5
5
  Project-URL: Homepage, https://github.com/model-bakers/model_bakery
6
6
  Author-email: berin <bernardoxhc@gmail.com>, amureki <amureki@hey.com>
@@ -1,7 +1,7 @@
1
- model_bakery/__about__.py,sha256=RqzUQEsX4hUOb94B1GOAj7CGJi2Hi7fdu4qN6_hsF8I,23
1
+ model_bakery/__about__.py,sha256=5kgpbRZNZ0S3xTW7W-SYXeJdcA29AHOdGGCQhbEDGaU,23
2
2
  model_bakery/__init__.py,sha256=yY0xZUrr_mskBm07iF-MFBEiXzOuKrlMwpKWkXZs8v0,31
3
3
  model_bakery/_types.py,sha256=P0iKC5-Cnh3lyzyZs1mlCfOW31zbEZpxqWCuYonucKo,130
4
- model_bakery/baker.py,sha256=KvAK_fAoqKgjik7ormzYZelHw-yxtuHiaHjtM9uXpu8,30905
4
+ model_bakery/baker.py,sha256=NjF__SdtxetVTN5Vc8PI2vek3PC5APxcPc6JB8hj_cw,31150
5
5
  model_bakery/content_types.py,sha256=3POJ12aqPuSvCdKYuwb1GlJpSocgByG2JW5kw7VBNxQ,395
6
6
  model_bakery/exceptions.py,sha256=q1oBZvfxL7HAD-F9aWgiYs4P4rz-hJ5TjeX7gcb3Q0I,333
7
7
  model_bakery/generators.py,sha256=weuPptRtWnznjXGB658ftLQtSj5RMwngx-ryBXapNjE,5173
@@ -10,10 +10,10 @@ model_bakery/mock_file.txt,sha256=CO5zPS6Uydk48ZRnGcRKVEYKd2YjaUMa9QOgF5gGMCo,10
10
10
  model_bakery/mock_img.jpeg,sha256=iF2ybgAVtDvl48-8VKdv_QFHKfnqeOaeGwR6ZLexJkY,1916
11
11
  model_bakery/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  model_bakery/random_gen.py,sha256=3rvZCg5px6NOY1Q3fHSqw51BY6iQfCmOoRX4SsCOp6U,10084
13
- model_bakery/recipe.py,sha256=lxsfdrNKydHLgPRiUTVh7DssmG-z2f8gL6okJ7yoCSQ,8451
13
+ model_bakery/recipe.py,sha256=rBiKxUhhc35GphptDcvv8R30yH5qXxvMigxKwHUJxhI,8568
14
14
  model_bakery/timezone.py,sha256=IvrzSer02FkUd_8DcJVOwTcRzeBn4qZ2pYvcI3QOr9E,345
15
15
  model_bakery/utils.py,sha256=NjUsWuPmCYy6kHLjWmYnH7l-MVqlqiqSh7uq1U7EWaI,4635
16
- model_bakery-1.20.1.dist-info/METADATA,sha256=sltjUvyyDEGAo78mSRFhpnUATUWPirCI15RNjq4hDpg,4406
17
- model_bakery-1.20.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
18
- model_bakery-1.20.1.dist-info/licenses/LICENSE,sha256=kCwHls7z8Y7NyZCmdnV1qLSdLrQ8bHrXLji5HOasgUc,611
19
- model_bakery-1.20.1.dist-info/RECORD,,
16
+ model_bakery-1.20.3.dist-info/METADATA,sha256=U1BlLchIR4sBgWtu5SKRi-ZnROYL_X8ZnkbfTXi0A6k,4406
17
+ model_bakery-1.20.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
18
+ model_bakery-1.20.3.dist-info/licenses/LICENSE,sha256=kCwHls7z8Y7NyZCmdnV1qLSdLrQ8bHrXLji5HOasgUc,611
19
+ model_bakery-1.20.3.dist-info/RECORD,,