Skip to content

Instantly share code, notes, and snippets.

@blopker
Created February 19, 2024 22:33
Show Gist options
  • Save blopker/8186a79792d39022e33eccb094c433ea to your computer and use it in GitHub Desktop.
Save blopker/8186a79792d39022e33eccb094c433ea to your computer and use it in GitHub Desktop.
class Settings:
def __init__(self, installed_apps, debug, debug_toolbar, internal_ips):
self.INSTALLED_APPS = installed_apps
self.DEBUG = debug
self.DEBUG_TOOLBAR = debug_toolbar
self.INTERNAL_IPS = internal_ips
class Request:
def __init__(self, remote_addr):
self.META = {"REMOTE_ADDR": remote_addr}
def should_enable(settings, request):
if "debug_toolbar" not in settings.INSTALLED_APPS:
return False
if settings.DEBUG is not True:
return False
if settings.DEBUG_TOOLBAR is True:
return True
if settings.INTERNAL_IPS:
return request.META["REMOTE_ADDR"] in settings.INTERNAL_IPS
return True
def test_new_user():
request = Request(remote_addr="1.1.1.1")
# New user with no settings
settings = Settings(
installed_apps=[],
debug=False,
debug_toolbar=None,
internal_ips=[],
)
assert should_enable(settings, request) is False
# New user with debug_toolbar installed
settings = Settings(
installed_apps=["debug_toolbar"],
debug=False,
debug_toolbar=None,
internal_ips=[],
)
assert should_enable(settings, request) is False
# New user with debug_toolbar installed and debug enabled
settings = Settings(
installed_apps=["debug_toolbar"],
debug=True,
debug_toolbar=None,
internal_ips=[],
)
assert should_enable(settings, request) is True
def test_existing_user():
request = Request(remote_addr="1.1.1.1")
# Existing user with debug_toolbar and INTERNAL_IPS set, debug off
settings = Settings(
installed_apps=["debug_toolbar"],
debug=False,
debug_toolbar=None,
internal_ips=["1.1.1.1", "2.2.2.2"],
)
assert should_enable(settings, request) is False
# Existing user with debug_toolbar and INTERNAL_IPS set, debug on
settings = Settings(
installed_apps=["debug_toolbar"],
debug=True,
debug_toolbar=None,
internal_ips=["1.1.1.1", "2.2.2.2"],
)
assert should_enable(settings, request) is True
# Existing user with INTERNAL_IPS set, but broken
settings = Settings(
installed_apps=["debug_toolbar"],
debug=True,
debug_toolbar=None,
internal_ips=["2.2.2.2"],
)
assert should_enable(settings, request) is False
# Existing user with debug_toolbar and INTERNAL_IPS set (broken), debug_toolbar on
settings = Settings(
installed_apps=["debug_toolbar"],
debug=True,
debug_toolbar=True,
internal_ips=["2.2.2.2"],
)
assert should_enable(settings, request) is True
if __name__ == "__main__":
test_new_user()
test_existing_user()
print("All tests passed!")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment