diff --git a/tests/test_items.py b/tests/test_items.py index 3dcd509..aad33b4 100644 --- a/tests/test_items.py +++ b/tests/test_items.py @@ -562,6 +562,13 @@ def test_item_array_of_dicts_converted_to_aot(): ) +def test_add_sum_int_with_float(): + content = "[table]\nmy_int = 2048.3" + doc = parse(content) + doc["table"]["my_int"] += 5 + assert doc["table"]["my_int"] == 2053.3 + + def test_integers_behave_like_ints(): i = item(34) diff --git a/tomlkit/items.py b/tomlkit/items.py index c956407..8c6889c 100644 --- a/tomlkit/items.py +++ b/tomlkit/items.py @@ -637,9 +637,8 @@ def as_string(self) -> str: return self._raw def __add__(self, other): - result = super().__add__(other) - return self._new(result) + return self._new(int(self._raw) + other) def __radd__(self, other): result = super().__radd__(other) @@ -664,7 +663,6 @@ def __rsub__(self, other): def _new(self, result): raw = str(result) - if self._sign: sign = "+" if result >= 0 else "-" raw = sign + raw