From f10d0a22a027030987a6143432a0e8000406af17 Mon Sep 17 00:00:00 2001 From: berin Date: Thu, 31 Mar 2022 19:38:49 -0300 Subject: [PATCH] Improve exception error message (#301) * Improve exception message * Update changelog * Code linter --- CHANGELOG.md | 1 + model_bakery/baker.py | 4 +++- tests/test_baker.py | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c64159c..499ba3c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Extend type hints in `model_bakery.recipe` module, make `Recipe` class generic [PR #292](https://github.com/model-bakers/model_bakery/pull/292) - Explicitly add _fill_optional parameters to baker.make and baker.prepare to aid IDE autocomplete function. [PR #264](https://github.com/model-bakers/model_bakery/pull/264) - Fixed errors with reverse M2M relationships [PR #299](https://github.com/model-bakers/model_bakery/pull/299) +- Improve exception message for unknown field types [PR #301](https://github.com/model-bakers/model_bakery/pull/301) ### Removed diff --git a/model_bakery/baker.py b/model_bakery/baker.py index 78ea561b..c7065b51 100644 --- a/model_bakery/baker.py +++ b/model_bakery/baker.py @@ -672,7 +672,9 @@ def generate_value(self, field: Field, commit: bool = True) -> Any: elif field.__class__ in self.type_mapping: generator = self.type_mapping[field.__class__] else: - raise TypeError("%s is not supported by baker." % field.__class__) + raise TypeError( + f"field {field.name} type {field.__class__} is not supported by baker." + ) # attributes like max_length, decimal_places are taken into account when # generating the value. diff --git a/tests/test_baker.py b/tests/test_baker.py index 7a53937b..f65699c0 100644 --- a/tests/test_baker.py +++ b/tests/test_baker.py @@ -578,6 +578,7 @@ def test_unsupported_model_raises_an_explanatory_exception(self): assert False, "Should have raised a TypeError" except TypeError as e: assert "not supported" in repr(e) + assert "field unsupported_field" in repr(e) @pytest.mark.django_db