WIP: Add some unit tests
This commit is contained in:
parent
c3fb82e971
commit
5401e8b185
0
memberPlumbing/tests/__init__.py
Normal file
0
memberPlumbing/tests/__init__.py
Normal file
688
memberPlumbing/tests/json-schemas/usr.schema
Normal file
688
memberPlumbing/tests/json-schemas/usr.schema
Normal file
@ -0,0 +1,688 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"nam": {
|
||||
"type": "string"
|
||||
},
|
||||
"adr": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"zip": {
|
||||
"type": "string"
|
||||
},
|
||||
"cit": {
|
||||
"type": "string"
|
||||
},
|
||||
"sta": {
|
||||
"type": "string"
|
||||
},
|
||||
"con": {
|
||||
"type": "string"
|
||||
},
|
||||
"ad1": {
|
||||
"type": "string"
|
||||
},
|
||||
"loc": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "number"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"ad1",
|
||||
"cit",
|
||||
"con",
|
||||
"loc",
|
||||
"sta",
|
||||
"zip"
|
||||
]
|
||||
},
|
||||
"org": {
|
||||
"type": "integer"
|
||||
},
|
||||
"cur": {
|
||||
"type": "string"
|
||||
},
|
||||
"ctc": {
|
||||
"type": "string"
|
||||
},
|
||||
"atg": {
|
||||
"type": "string"
|
||||
},
|
||||
"uid": {
|
||||
"type": "string"
|
||||
},
|
||||
"typ": {
|
||||
"type": "string"
|
||||
},
|
||||
"eml": {
|
||||
"type": "string"
|
||||
},
|
||||
"phn": {
|
||||
"type": "string"
|
||||
},
|
||||
"end": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tpl": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"anm": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"lbl": {
|
||||
"type": "string"
|
||||
},
|
||||
"box": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"dat": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"_id": {
|
||||
"type": "string"
|
||||
},
|
||||
"typ": {
|
||||
"type": "integer"
|
||||
},
|
||||
"plh": {
|
||||
"type": "string"
|
||||
},
|
||||
"req": {
|
||||
"type": "integer"
|
||||
},
|
||||
"rxp": {
|
||||
"type": "string"
|
||||
},
|
||||
"err": {
|
||||
"type": "string"
|
||||
},
|
||||
"lbl": {
|
||||
"type": "string"
|
||||
},
|
||||
"dtl": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"typ"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ttl": {
|
||||
"type": "string"
|
||||
},
|
||||
"dtl": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"dat"
|
||||
]
|
||||
}
|
||||
},
|
||||
"dir": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"box",
|
||||
"lbl"
|
||||
]
|
||||
}
|
||||
},
|
||||
"acc": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"lbl": {
|
||||
"type": "string"
|
||||
},
|
||||
"box": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"dat": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"_id": {
|
||||
"type": "string"
|
||||
},
|
||||
"typ": {
|
||||
"type": "integer"
|
||||
},
|
||||
"plh": {
|
||||
"type": "string"
|
||||
},
|
||||
"req": {
|
||||
"type": "integer"
|
||||
},
|
||||
"rxp": {
|
||||
"type": "string"
|
||||
},
|
||||
"err": {
|
||||
"type": "string"
|
||||
},
|
||||
"lbl": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_id",
|
||||
"lbl",
|
||||
"typ"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ttl": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"dat"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"box",
|
||||
"lbl"
|
||||
]
|
||||
}
|
||||
},
|
||||
"adm": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"lbl": {
|
||||
"type": "string"
|
||||
},
|
||||
"box": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"ttl": {
|
||||
"type": "string"
|
||||
},
|
||||
"dat": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"_id": {
|
||||
"type": "string"
|
||||
},
|
||||
"typ": {
|
||||
"type": "integer"
|
||||
},
|
||||
"plh": {
|
||||
"type": "string"
|
||||
},
|
||||
"req": {
|
||||
"type": "integer"
|
||||
},
|
||||
"rxp": {
|
||||
"type": "string"
|
||||
},
|
||||
"err": {
|
||||
"type": "string"
|
||||
},
|
||||
"lbl": {
|
||||
"type": "string"
|
||||
},
|
||||
"def": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_id",
|
||||
"typ"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"dtl": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"dat"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"box",
|
||||
"lbl"
|
||||
]
|
||||
}
|
||||
},
|
||||
"dir": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"lbl": {
|
||||
"type": "string"
|
||||
},
|
||||
"box": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"htm": {
|
||||
"type": "string"
|
||||
},
|
||||
"dat": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"box",
|
||||
"lbl"
|
||||
]
|
||||
}
|
||||
},
|
||||
"crd": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"typ": {
|
||||
"type": "integer"
|
||||
},
|
||||
"dtl": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"dtl",
|
||||
"typ"
|
||||
]
|
||||
},
|
||||
"ylp": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"dat": {
|
||||
"type": "string"
|
||||
},
|
||||
"ttl": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"dat"
|
||||
]
|
||||
}
|
||||
},
|
||||
"evt": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"_id": {
|
||||
"type": "string"
|
||||
},
|
||||
"typ": {
|
||||
"type": "integer"
|
||||
},
|
||||
"req": {
|
||||
"type": "integer"
|
||||
},
|
||||
"lbl": {
|
||||
"type": "string"
|
||||
},
|
||||
"rxp": {
|
||||
"type": "string"
|
||||
},
|
||||
"err": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_id",
|
||||
"lbl",
|
||||
"req",
|
||||
"typ"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"acc",
|
||||
"adm",
|
||||
"anm",
|
||||
"crd",
|
||||
"dir",
|
||||
"evt",
|
||||
"ylp"
|
||||
]
|
||||
},
|
||||
"evg": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"ttl": {
|
||||
"type": "string"
|
||||
},
|
||||
"cal": {
|
||||
"type": "integer"
|
||||
},
|
||||
"opt": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"cal",
|
||||
"opt",
|
||||
"ttl"
|
||||
]
|
||||
}
|
||||
},
|
||||
"dcc": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"lbl": {
|
||||
"type": "string"
|
||||
},
|
||||
"amt": {
|
||||
"type": "integer"
|
||||
},
|
||||
"typ": {
|
||||
"type": "integer"
|
||||
},
|
||||
"_id": {
|
||||
"type": "string"
|
||||
},
|
||||
"cnt": {
|
||||
"type": "integer"
|
||||
},
|
||||
"cap": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_id",
|
||||
"amt",
|
||||
"lbl",
|
||||
"typ"
|
||||
]
|
||||
}
|
||||
},
|
||||
"dek": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"did": {
|
||||
"type": "string"
|
||||
},
|
||||
"lbl": {
|
||||
"type": "string"
|
||||
},
|
||||
"dir": {
|
||||
"type": "integer"
|
||||
},
|
||||
"aon": {
|
||||
"type": "integer"
|
||||
},
|
||||
"typ": {
|
||||
"type": "integer"
|
||||
},
|
||||
"dek": {
|
||||
"type": "integer"
|
||||
},
|
||||
"pub": {
|
||||
"type": "integer"
|
||||
},
|
||||
"dtl": {
|
||||
"type": "string"
|
||||
},
|
||||
"mux": {
|
||||
"type": "integer"
|
||||
},
|
||||
"itv": {
|
||||
"type": "string"
|
||||
},
|
||||
"lvl": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"_id": {
|
||||
"type": "string"
|
||||
},
|
||||
"ctc": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"tnm": {
|
||||
"type": "string"
|
||||
},
|
||||
"dnm": {
|
||||
"type": "string"
|
||||
},
|
||||
"cur": {
|
||||
"type": "string"
|
||||
},
|
||||
"_rt": {
|
||||
"type": "integer"
|
||||
},
|
||||
"bil": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"bid": {
|
||||
"type": "string"
|
||||
},
|
||||
"ttl": {
|
||||
"type": "string"
|
||||
},
|
||||
"way": {
|
||||
"type": "integer"
|
||||
},
|
||||
"amt": {
|
||||
"type": "number"
|
||||
},
|
||||
"itv": {
|
||||
"type": "string"
|
||||
},
|
||||
"mux": {
|
||||
"type": "integer"
|
||||
},
|
||||
"pub": {
|
||||
"type": "integer"
|
||||
},
|
||||
"dcc": {
|
||||
"type": "object"
|
||||
},
|
||||
"dso": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"amt",
|
||||
"bid",
|
||||
"itv",
|
||||
"mux",
|
||||
"ttl",
|
||||
"way"
|
||||
]
|
||||
}
|
||||
},
|
||||
"cat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"put": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"upg": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"nyn": {
|
||||
"type": "integer"
|
||||
},
|
||||
"prp": {
|
||||
"type": "integer"
|
||||
},
|
||||
"psm": {
|
||||
"type": "integer"
|
||||
},
|
||||
"exp": {
|
||||
"type": "string"
|
||||
},
|
||||
"enr": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"day": {
|
||||
"type": "integer"
|
||||
},
|
||||
"ttl": {
|
||||
"type": "string"
|
||||
},
|
||||
"dtl": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"day",
|
||||
"dtl",
|
||||
"ttl"
|
||||
]
|
||||
}
|
||||
},
|
||||
"wen": {
|
||||
"type": "string"
|
||||
},
|
||||
"pur": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"puk": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"puu": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"pus": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"pup": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"puq": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_id",
|
||||
"dek",
|
||||
"did",
|
||||
"dir",
|
||||
"lbl",
|
||||
"pub",
|
||||
"typ"
|
||||
]
|
||||
}
|
||||
},
|
||||
"SF": {
|
||||
"type": "string"
|
||||
},
|
||||
"_fd": {
|
||||
"type": "integer"
|
||||
},
|
||||
"_ts": {
|
||||
"type": "integer"
|
||||
},
|
||||
"_re": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"SF",
|
||||
"_fd",
|
||||
"_ts",
|
||||
"adr",
|
||||
"atg",
|
||||
"cur",
|
||||
"dcc",
|
||||
"dek",
|
||||
"eml",
|
||||
"end",
|
||||
"evg",
|
||||
"nam",
|
||||
"org",
|
||||
"tpl",
|
||||
"typ",
|
||||
"uid"
|
||||
]
|
||||
}
|
179
memberPlumbing/tests/test_membershipworks.py
Normal file
179
memberPlumbing/tests/test_membershipworks.py
Normal file
@ -0,0 +1,179 @@
|
||||
import datetime
|
||||
from unittest.mock import patch
|
||||
|
||||
import pytest
|
||||
import responses
|
||||
|
||||
from ..MembershipWorks import BASE_URL, MembershipWorks, MembershipWorksRemoteError
|
||||
|
||||
|
||||
@responses.activate
|
||||
def test_login():
|
||||
membershipworks = MembershipWorks()
|
||||
|
||||
responses.add(
|
||||
responses.POST, BASE_URL + "usr", json={"SF": "test1", "org": 10000}, status=200
|
||||
)
|
||||
|
||||
membershipworks.login("test1@example.com", "test2")
|
||||
|
||||
assert membershipworks.auth_token == "test1"
|
||||
assert membershipworks.org_num == 10000
|
||||
|
||||
|
||||
@responses.activate
|
||||
def test_login_fail():
|
||||
membershipworks = MembershipWorks()
|
||||
|
||||
responses.add(
|
||||
responses.POST, BASE_URL + "usr", json={"error": "Login/password not accepted"},
|
||||
)
|
||||
|
||||
with pytest.raises(MembershipWorksRemoteError) as e:
|
||||
membershipworks.login("test1@example.com", "test2")
|
||||
|
||||
assert (
|
||||
e.exception.args[0]
|
||||
== "Error when attempting login: 200 OK\n"
|
||||
+ '{"error":"Login/password not accepted"}'
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def membershipworks():
|
||||
mw = MembershipWorks()
|
||||
|
||||
with responses.RequestsMock() as rsps:
|
||||
rsps.add(
|
||||
responses.POST,
|
||||
BASE_URL + "usr",
|
||||
json={
|
||||
"SF": "test1",
|
||||
"org": 10000,
|
||||
"dek": [{"_id": "12345", "lbl": "test", "dek": 1}],
|
||||
},
|
||||
)
|
||||
|
||||
mw.login("test1@example.com", "test2")
|
||||
|
||||
return mw
|
||||
|
||||
|
||||
@responses.activate
|
||||
def test_get_member_ids(membershipworks: MembershipWorks):
|
||||
responses.add(
|
||||
responses.GET,
|
||||
BASE_URL + "ylp",
|
||||
json={
|
||||
"typ": "a",
|
||||
"usr": [{"uid": "asdf", "nam": "test", "rnk": 12.345}],
|
||||
"_re": 631,
|
||||
},
|
||||
)
|
||||
ids = membershipworks.get_member_ids(["test"])
|
||||
assert ids == ["asdf"]
|
||||
|
||||
|
||||
@responses.activate
|
||||
@patch("memberPlumbing.MembershipWorks.MembershipWorks.get_member_ids")
|
||||
def test_get_members(mockIDs, membershipworks: MembershipWorks):
|
||||
mockIDs.return_value = ["asdf"]
|
||||
|
||||
responses.add(
|
||||
responses.POST,
|
||||
BASE_URL + "csv",
|
||||
body=""""Account Name","First Name","Last Name","Account ID","Parent Account ID"
|
||||
"bob whatever", "bob", "whatever", "aaaaaaaaaaaaaaaaaaaaaaaa", ""
|
||||
"george whatever", "george", "whatever", "bbbbbbbbbbbbbbbbbbbbbbbb", ""
|
||||
""",
|
||||
)
|
||||
|
||||
members = membershipworks.get_members(["test"], "_id,nam")
|
||||
|
||||
assert members == [
|
||||
{
|
||||
"Account Name": "bob whatever",
|
||||
"First Name": ' "bob"',
|
||||
"Last Name": ' "whatever"',
|
||||
"Account ID": ' "aaaaaaaaaaaaaaaaaaaaaaaa"',
|
||||
"Parent Account ID": ' ""',
|
||||
},
|
||||
{
|
||||
"Account Name": "george whatever",
|
||||
"First Name": ' "george"',
|
||||
"Last Name": ' "whatever"',
|
||||
"Account ID": ' "bbbbbbbbbbbbbbbbbbbbbbbb"',
|
||||
"Parent Account ID": ' ""',
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
@responses.activate
|
||||
def test_get_transactions_csv(membershipworks: MembershipWorks):
|
||||
responses.add(
|
||||
responses.GET,
|
||||
BASE_URL + "csv",
|
||||
body=""""Date","Name","Contact Person","Full Address","Street","City","State/Province","Postal Code","Country","Phone","Email","Membership Sub-Total","Event Sub-Total","Donation Sub-Total","Cart Sub-Total","Other Sub-Total","Handling","Total Tax","Transaction Total","Transaction Fee","Total Payment Due","Transaction Type","For","Items","Payment ID","Account ID","Discount Code","Note"
|
||||
"Jan 01, 2020","whatever","","PO Box 0, fakeplace NH, US","PO Box 0","fakeplace","NH","","US","000-000-0000","example@example.com",1,0,0,0,0,0,0,1,0.32,0,"Membership","","CMS Membership on hold - Membership on hold","ch_aaaaaaaaaaaaaaaaaaaaaaaa","aaaaaaaaaaaaaaaaaaaaaaaa","",""
|
||||
""",
|
||||
)
|
||||
|
||||
transactions = membershipworks.get_transactions(
|
||||
datetime.datetime(2000, 1, 1), datetime.datetime(2021, 1, 1)
|
||||
)
|
||||
|
||||
assert transactions == [
|
||||
{
|
||||
"Date": "Jan 01, 2020",
|
||||
"Name": "whatever",
|
||||
"Contact Person": "",
|
||||
"Full Address": "PO Box 0, fakeplace NH, US",
|
||||
"Street": "PO Box 0",
|
||||
"City": "fakeplace",
|
||||
"State/Province": "NH",
|
||||
"Postal Code": "",
|
||||
"Country": "US",
|
||||
"Phone": "000-000-0000",
|
||||
"Email": "example@example.com",
|
||||
"Membership Sub-Total": "1",
|
||||
"Event Sub-Total": "0",
|
||||
"Donation Sub-Total": "0",
|
||||
"Cart Sub-Total": "0",
|
||||
"Other Sub-Total": "0",
|
||||
"Handling": "0",
|
||||
"Total Tax": "0",
|
||||
"Transaction Total": "1",
|
||||
"Transaction Fee": "0.32",
|
||||
"Total Payment Due": "0",
|
||||
"Transaction Type": "Membership",
|
||||
"For": "",
|
||||
"Items": "CMS Membership on hold - Membership on hold",
|
||||
"Payment ID": "ch_aaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"Account ID": "aaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"Discount Code": "",
|
||||
"Note": "",
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
@responses.activate
|
||||
def test_get_transactions_json(membershipworks: MembershipWorks):
|
||||
data_json = [
|
||||
{
|
||||
"cur": "usd",
|
||||
"sid": "ch_aaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"typ": 12,
|
||||
"_dp": 1585100000,
|
||||
"sum": 1,
|
||||
"fee": 0.32,
|
||||
"uid": "aaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"nam": "whatever",
|
||||
}
|
||||
]
|
||||
responses.add(responses.GET, BASE_URL + "csv", json=data_json)
|
||||
|
||||
transactions = membershipworks.get_transactions(
|
||||
datetime.datetime(2000, 1, 1), datetime.datetime(2021, 1, 1), json=True
|
||||
)
|
||||
assert "&txl=" in responses.calls[0].request.url # json flag
|
||||
assert transactions == data_json
|
31
memberPlumbing/tests/test_membershipworks_contract.py
Normal file
31
memberPlumbing/tests/test_membershipworks_contract.py
Normal file
@ -0,0 +1,31 @@
|
||||
import json
|
||||
import os
|
||||
|
||||
import jsonschema
|
||||
import requests
|
||||
|
||||
import pytest
|
||||
|
||||
from ..common import MEMBERSHIPWORKS_PASSWORD, MEMBERSHIPWORKS_USERNAME
|
||||
from ..MembershipWorks import BASE_URL
|
||||
|
||||
schemas_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "json-schemas")
|
||||
|
||||
|
||||
def test_login():
|
||||
r = requests.post(
|
||||
BASE_URL + "usr",
|
||||
data={
|
||||
"_st": "all",
|
||||
"eml": MEMBERSHIPWORKS_USERNAME,
|
||||
"org": "10000",
|
||||
"pwd": MEMBERSHIPWORKS_PASSWORD,
|
||||
},
|
||||
)
|
||||
|
||||
with open(os.path.join(schemas_dir, "usr.schema")) as f:
|
||||
schema = json.load(f)
|
||||
|
||||
usr = r.json()
|
||||
|
||||
jsonschema.validate(usr, schema)
|
Reference in New Issue
Block a user