1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- from flask import url_for
- from app.extensions import db
- from app.models import User, ApiKey, AliasUsedOn, Alias
- def test_different_scenarios(flask_client):
- user = User.create(
- email="a@b.c", password="password", name="Test User", activated=True
- )
- db.session.commit()
- # create api_key
- api_key = ApiKey.create(user.id, "for test")
- db.session.commit()
- # <<< without hostname >>>
- r = flask_client.get(
- url_for("api.options"), headers={"Authentication": api_key.code}
- )
- # {
- # "can_create_custom": True,
- # "custom": {"suffixes": ["azdwbw@sl.local"], "suggestion": ""},
- # "existing": ["cat_cat_cat@sl.local"],
- # }
- assert r.status_code == 200
- assert r.json["can_create_custom"]
- assert len(r.json["existing"]) == 1
- assert len(r.json["custom"]["suffixes"]) == 4
- assert r.json["custom"]["suggestion"] == "" # no hostname => no suggestion
- # <<< with hostname >>>
- r = flask_client.get(
- url_for("api.options", hostname="www.test.com"),
- headers={"Authentication": api_key.code},
- )
- assert r.json["custom"]["suggestion"] == "test"
- # <<< with recommendation >>>
- alias = Alias.create_new(user, prefix="test")
- db.session.commit()
- AliasUsedOn.create(alias_id=alias.id, hostname="www.test.com")
- db.session.commit()
- r = flask_client.get(
- url_for("api.options", hostname="www.test.com"),
- headers={"Authentication": api_key.code},
- )
- assert r.json["recommendation"]["alias"] == alias.email
- assert r.json["recommendation"]["hostname"] == "www.test.com"
- def test_different_scenarios_v2(flask_client):
- user = User.create(
- email="a@b.c", password="password", name="Test User", activated=True
- )
- db.session.commit()
- # create api_key
- api_key = ApiKey.create(user.id, "for test")
- db.session.commit()
- # <<< without hostname >>>
- r = flask_client.get(
- url_for("api.options_v2"), headers={"Authentication": api_key.code}
- )
- assert r.status_code == 200
- # {'can_create': True, 'existing': ['my-first-alias.chat@sl.local'], 'prefix_suggestion': '', 'suffixes': ['.meo@sl.local']}
- assert r.json["can_create"]
- assert len(r.json["existing"]) == 1
- assert r.json["suffixes"]
- assert r.json["prefix_suggestion"] == "" # no hostname => no suggestion
- # <<< with hostname >>>
- r = flask_client.get(
- url_for("api.options_v2", hostname="www.test.com"),
- headers={"Authentication": api_key.code},
- )
- assert r.json["prefix_suggestion"] == "test"
- # <<< with recommendation >>>
- alias = Alias.create_new(user, prefix="test")
- db.session.commit()
- AliasUsedOn.create(alias_id=alias.id, hostname="www.test.com")
- db.session.commit()
- r = flask_client.get(
- url_for("api.options_v2", hostname="www.test.com"),
- headers={"Authentication": api_key.code},
- )
- assert r.json["recommendation"]["alias"] == alias.email
- assert r.json["recommendation"]["hostname"] == "www.test.com"
|