Skip to content

Commit

Permalink
adjust warn position
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielYang59 committed Mar 31, 2024
1 parent 385b5b9 commit 49d51de
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 22 deletions.
7 changes: 3 additions & 4 deletions monty/dev.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,17 +109,16 @@ def deprecated_decorator(old: Callable):
def wrapped(*args, **kwargs):
msg = craft_message(old, replacement, message, _deadline)
warnings.warn(msg, category=category, stacklevel=2)

# Raise a CI warning after removal deadline
raise_deadline_warning()

return old(*args, **kwargs)

return wrapped

# Convert deadline to datetime type
_deadline = datetime(*deadline) if deadline is not None else None

# Raise CI warning after removal deadline
raise_deadline_warning()

return deprecated_decorator


Expand Down
41 changes: 23 additions & 18 deletions tests/test_dev.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,36 +89,38 @@ def classmethod_b(cls):
assert TestClass_deprecationwarning().classmethod_b() == "b"

def test_deprecated_deadline(self):
@deprecated(deadline=(2000, 1, 1))
def func_old():
pass

with warnings.catch_warnings(record=True) as warn_msgs:
func_old() # trigger a warning
@deprecated(deadline=(2000, 1, 1))
def func_old():
pass

assert "will be removed on 2000-01-01" in str(warn_msgs[0].message)
assert "This function should have been removed" in str(warn_msgs[0].message)

def test_deprecated_deadline_no_warn(self, monkeypatch):
"""Test cases where no warning should be raised."""

@deprecated(deadline=(2000, 1, 1))
def func_old():
pass
# # No warn case 1: date before deadline
# DEBUG
# with warnings.catch_warnings(record=True) as warn_msgs:
# monkeypatch.setattr(datetime.datetime, "now", datetime.datetime(1999, 1, 1))

# No warn case 1: date before deadline
with warnings.catch_warnings(record=True) as warn_msgs:
monkeypatch.setattr(datetime, "datetime", datetime.datetime(1999, 1, 1))
func_old()
# @deprecated(deadline=(2000, 1, 1))
# def func_old():
# pass

for warning in warn_msgs:
assert "This function should have been removed on" not in str(
warning.message
)
# for warning in warn_msgs:
# assert "This function should have been removed on" not in str(
# warning.message
# )

# No warn case 2: not in CI env
with warnings.catch_warnings(record=True) as warn_msgs:
monkeypatch.delenv("CI", raising=False)
func_old()

@deprecated(deadline=(2000, 1, 1))
def func_old():
pass

for warning in warn_msgs:
assert "This function should have been removed on" not in str(
Expand All @@ -128,7 +130,10 @@ def func_old():
# No warn case 3: not in code owner repo
with warnings.catch_warnings(record=True) as warn_msgs:
monkeypatch.setenv("GITHUB_REPOSITORY", "NONE/NONE")
func_old()

@deprecated(deadline=(2000, 1, 1))
def func_old():
pass

for warning in warn_msgs:
assert "This function should have been removed on" not in str(
Expand Down

0 comments on commit 49d51de

Please sign in to comment.