Recruitment_site/offer_backend/apps/jobs/tests/test_jobs.py

46 lines
1.4 KiB
Python

import pytest
from django.contrib.auth import get_user_model
from apps.organizations.models import Organization
from apps.jobs.models import Job
User = get_user_model()
@pytest.fixture
def org():
return Organization.objects.create(name='测试公司', email='test@test.com')
@pytest.fixture
def admin_user(org):
return User.objects.create_user(
username='admin1', password='pass123',
role='admin', organization=org
)
@pytest.mark.django_db
class TestJobModel:
def test_create_job(self, org):
job = Job.objects.create(
organization=org, title='Python工程师',
category='技术', location='北京', salary='20k-30k',
description='职位描述', status='published'
)
assert job.status == 'published'
assert str(job) == 'Python工程师'
@pytest.mark.django_db
class TestJobAPI:
def test_public_can_list_published_jobs(self, client, org):
Job.objects.create(
organization=org, title='已发布职位',
status='published', category='技术',
location='北京', salary='10k'
)
Job.objects.create(
organization=org, title='草稿职位',
status='draft', category='技术',
location='北京', salary='10k'
)
response = client.get('/api/jobs/public/')
assert response.status_code == 200
assert response.data['count'] == 1