Skip to content
This repository was archived by the owner on Dec 19, 2021. It is now read-only.

Commit 4780a5a

Browse files
authored
Improve resource for cypress tests (#412)
1 parent 4e2a287 commit 4780a5a

File tree

2 files changed

+30
-26
lines changed

2 files changed

+30
-26
lines changed

data/seed.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,11 @@ def data(self):
5656

5757
# Create some pending users
5858
for _ in range(5):
59-
UserModel.create(schema=UserRegisterSchema, payload=self.user_attributes())
59+
self.create_pending_user(payload=self.user_attributes())
6060

6161
# Create some archived users that were never approved.
6262
for _ in range(3):
63-
UserModel.create(
64-
schema=UserRegisterSchema,
65-
payload=self.user_attributes(archived=True),
66-
)
63+
self.create_pending_user(payload=self.user_attributes(archived=True))
6764

6865
self.staff = [
6966
Staff.create(
@@ -278,3 +275,9 @@ def property_attributes(self, archived=False):
278275
def property_manager_ids(self):
279276
managers = self.rand.sample(self.property_managers, self.rand.randint(1, 5))
280277
return [manager.id for manager in managers]
278+
279+
def create_pending_user(self, payload):
280+
UserModel.create(
281+
schema=UserRegisterSchema,
282+
payload=payload,
283+
)

tests/cypress/cypress_resource.py

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22
from flask_restful import Resource
33

44
from db import db
5+
from data.seed import Seed
56
from models.user import RoleEnum
6-
from models.staff_tenant_link import StaffTenantLink
7-
from models.user import UserModel
87
from models.users.staff import Staff
98
from models.tenant import TenantModel
10-
from schemas.user import UserSchema, UserRegisterSchema
9+
from schemas.user import UserSchema
1110
from schemas.tenant import TenantSchema
1211

1312

@@ -20,6 +19,7 @@ def _decorator(*args, **kwargs):
2019
return _decorator
2120

2221

22+
seed = Seed()
2323
not_found_message = {"message": "RequestNotFoundError: Request was not found"}
2424

2525

@@ -31,10 +31,7 @@ def post(self):
3131
return 200
3232

3333
if request.args.get("create_pending_user"):
34-
UserModel.create(
35-
schema=UserRegisterSchema,
36-
payload=request.json,
37-
)
34+
seed.create_pending_user(payload=request.json)
3835
return 200
3936

4037
if request.args.get("create_staff_user"):
@@ -51,17 +48,21 @@ def post(self):
5148
return not_found_message, 421
5249

5350
def _setup(self):
54-
for st in StaffTenantLink.query.all():
55-
self._del(st)
56-
for u in UserModel.query.where(UserModel.email != "user1@dwellingly.org").all():
57-
self._del(u)
58-
for t in TenantModel.query.all():
59-
self._del(t)
60-
61-
self._commit()
62-
63-
def _del(self, obj):
64-
db.session.delete(obj)
65-
66-
def _commit(self):
67-
db.session.commit()
51+
db.session.execute(
52+
"""
53+
do
54+
$$
55+
declare
56+
l_stmt text;
57+
begin
58+
select 'truncate ' || string_agg(format('%I.%I', schemaname, tablename), ',')
59+
into l_stmt
60+
from pg_tables
61+
where schemaname in ('public');
62+
63+
execute l_stmt;
64+
end;
65+
$$
66+
"""
67+
)
68+
seed.create_admin()

0 commit comments

Comments
 (0)