add trainees page
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
from bs4 import BeautifulSoup
|
||||
from django.urls import reverse
|
||||
from generic.models import UserProfile, UserGrades
|
||||
from django.contrib.auth.models import Group
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def create_cid_manager(db, django_user_model):
|
||||
user = django_user_model.objects.create_user(
|
||||
"cidmanager", "test@test.com", "password"
|
||||
)
|
||||
g = Group.objects.create(name="cid_user_manager")
|
||||
g.save()
|
||||
user.groups.add(g)
|
||||
return
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def create_user_grades(db):
|
||||
for i in range(1, 6):
|
||||
UserGrades.objects.create(name=f"ST{i}")
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def create_users(db, django_user_model, create_user_grades):
|
||||
users = [
|
||||
("user1", "ST1", "email@email.com"),
|
||||
("user2", "ST1", "email@email.com"),
|
||||
("user3", "ST2", "email@email.com"),
|
||||
("user4", "ST3", "email@email.com"),
|
||||
]
|
||||
|
||||
for name, grade, email in users:
|
||||
user = django_user_model.objects.create_user(name, email, "password")
|
||||
|
||||
user.userprofile.grade = UserGrades.objects.get(name=grade)
|
||||
user.userprofile.peninsula_trainee = True
|
||||
user.userprofile.save()
|
||||
|
||||
|
||||
def test_trainee_stuff(client, create_cid_manager, create_users):
|
||||
print(UserProfile.objects.all().count())
|
||||
|
||||
assert UserProfile.objects.all().count() == 5
|
||||
assert UserProfile.objects.filter(peninsula_trainee=True).count() == 4
|
||||
|
||||
response = client.get(reverse(f"trainees"))
|
||||
assert response.status_code == 403
|
||||
|
||||
client.login(username="user1", password="password")
|
||||
|
||||
response = client.get(reverse(f"trainees"))
|
||||
assert response.status_code == 403
|
||||
|
||||
client.login(username="cidmanager", password="password")
|
||||
|
||||
response = client.get(reverse(f"trainees"))
|
||||
assert response.status_code == 200
|
||||
|
||||
trainee_rows = BeautifulSoup(response.content, "html.parser").find(
|
||||
"tr", {"class": "trainee"}
|
||||
)
|
||||
|
||||
assert (
|
||||
len(trainee_rows) == UserProfile.objects.filter(peninsula_trainee=True).count()
|
||||
)
|
||||
Reference in New Issue
Block a user