Skip to content

Commit

Permalink
Require site_url only for token login
Browse files Browse the repository at this point in the history
  • Loading branch information
jjdelc committed Mar 17, 2022
1 parent 597244e commit 5e9d65d
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
6 changes: 4 additions & 2 deletions src/pycrunch/elements.py
Original file line number Diff line number Diff line change
Expand Up @@ -316,18 +316,20 @@ class ElementSession(lemonpy.Session):
def __init__(
self, email=None, password=None, token=None, site_url=None, progress_tracking=None
):
if not site_url:
if not site_url and token:
raise ValueError("Must include a `site_url` host to connect to")
self.__email = email
self.__password = password
self.token = token
self.site_url = site_url
self.domain = urlparse(site_url).netloc
self.domain = urlparse(site_url).netloc if site_url else None
self.progress_tracking = progress_tracking or DefaultProgressTracking()
super(ElementSession, self).__init__()

@property
def root(self):
if not self.site_url:
raise ValueError("Session must be initialized with `site_url`")
return self.get(self.site_url).payload

@property
Expand Down
16 changes: 15 additions & 1 deletion tests/test_elements.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,21 @@ def test_root(self):
root = session.root
assert root == api_root

def test_require_host(self):
def test_root_no_site_url(self):
email = "[email protected]"
session = elements.ElementSession(email=email, password="abx")
with self.assertRaises(ValueError) as err:
_ = session.root
assert str(err.exception) == "Session must be initialized with `site_url`"

def test_require_host_with_token(self):
with self.assertRaises(ValueError) as err:
elements.ElementSession(token="abc")
assert str(err.exception) == "Must include a `site_url` host to connect to"

def test_host_not_required_on_email(self):
email = "[email protected]"
session = elements.ElementSession(email=email, password="abx")
assert session.site_url is None
assert session.email is email

0 comments on commit 5e9d65d

Please sign in to comment.