微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在django测试期间未创建某些数据

如何解决为什么在django测试期间未创建某些数据

我正在测试Django应用程序。我已经在setUp方法中创建了JobSeeker和Employer数据。现在test_edit_job_seeker_data失败并显示错误。它说找不到资源。我猜测JobSeeker数据从未创建,但是Employer数据已创建。这是测试用例的代码

class TestViewsLiveServer(StaticLiveServerTestCase):
    def setUp(self):
        self.browser = webdriver.Firefox()
        date_str = "2020-09-15"
        temp_date = parse_date(date_str)
        # Create a list of employer objects
        Employer.objects.create(
            firstname="Patrice",lastname="Chaula",phone_number="+263782841339",physical_address="4790 Mkoba 12,Gweru,Midlands",email_address="chaulapsx@gmail.com",job_title="Carpenter to adjust my kitchen unit",job_description="I am searching for a carpenter to fix my kitchen unit.",status=False,date_needed=temp_date
        )

        date_str = "2020-09-20"
        temp_date = parse_date(date_str)

        Employer.objects.create(
            firstname="John",lastname="Doe",email_address="johndoe@gmail.com",job_title="Motor mechanic for engine overhaul",job_description="I am currently looking for a motor mechanic for my engine overhaul.",date_needed=temp_date
        )

        # Create a list of job seeker objects
        JobSeeker.objects.create(
            firstname="Patrice",job_title="Carpenter to create me something",date_applied=temp_date
        )

        date_str = "2020-09-20"
        temp_date = parse_date(date_str)

        JobSeeker.objects.create(
            firstname="John",date_applied=temp_date
        )

    def test_edit_employer_data(self):
        url = self.live_server_url + reverse("edit-employer",kwargs={"pk": 1})
        self.browser.get(url)
        self.browser.find_element_by_id("id_firstname").clear()
        self.browser.find_element_by_id("id_firstname").send_keys("Tapiwa")
        self.browser.find_element_by_id("id_lastname").clear()
        self.browser.find_element_by_id("id_lastname").send_keys("Chikerema")
        self.browser.find_element_by_id("update-btn").click()
        employer = Employer.objects.get(id=1)
        self.assertEquals(employer.firstname,"Tapiwa")
        self.assertEquals(employer.lastname,"Chikerema")

    def test_edit_job_seeker_data(self):
        url = self.live_server_url + reverse("edit-job-seeker",kwargs={"pk": 1})
        self.browser.get(url)
        self.browser.find_element_by_id("id_firstname").clear()
        self.browser.find_element_by_id("id_firstname").send_keys("Tapiwa")
        self.browser.find_element_by_id("id_lastname").clear()
        self.browser.find_element_by_id("id_lastname").send_keys("Chikerema")
        self.browser.find_element_by_id("update-btn").click()
        jobseeker = JobSeeker.objects.get(id=1)
        self.assertEquals(jobseeker.firstname,"Tapiwa")
        self.assertEquals(jobseeker.lastname,"Chikerema")

    def tearDown(self):
        self.browser.close()

以上只是大文件的一部分。整个文件如下。我这样说是为了我的代码设置可能有问题

from django.test import TestCase,Client
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
from django.urls import reverse
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from employment_agent.models import *
from django.utils.dateparse import parse_date
import json
import time


class TestViews(TestCase):

    def setUp(self):
        self.client = Client(HTTP_USER_AGENT="Mozilla/5.0")
        self.url = reverse("home")
        date_str = "2020-09-15"
        temp_date = parse_date(date_str)
        # Create a list of employer objects
        Employer.objects.create(
            firstname="Patrice",job_description="I am searching for a carpenter to create me something.",date_needed=temp_date
        )
        # Create a list of job seeker objects
        JobSeeker.objects.create(
            firstname="Patrice",date_applied=temp_date
        )

    # Test if the homepage is accessible and using the right template

    def test_employer_agent(self):
        response = self.client.get(self.url)
        self.assertEquals(response.status_code,200)
        self.assertTemplateUsed(response,"employment_agent/home.html")

    # Test if the employers index page is reachable and is using the right template
    def test_employers_index_page_get(self):
        response = self.client.get(reverse("employers"))
        self.assertEquals(response.status_code,200)
        self.assertTemplateUsed(
            response,"employment_agent/employers_index.html")

    # Test if the employer data can be deleted successfully
    def test_delete_employer_data(self):
        url = reverse("delete-employer",kwargs={"pk": 1})
        response = self.client.post(url)
        self.assertEquals(response.status_code,302)

    # Test what happens if we try to delete data that do not exist
    def test_delete_employer_data_does_not_exist(self):
        url = reverse("delete-employer",kwargs={"pk": 9})
        response = self.client.post(url)
        self.assertEquals(response.status_code,404)

    # Test if specific employer data is viewable
    def test_view_employer_data(self):
        url = reverse("view-employer",kwargs={"pk": 1})
        response = self.client.get(url)
        self.assertContains(response,"Patrice")
        self.assertContains(response,"Chaula")
        self.assertContains(response,"Carpenter to create me something")

    # Test try to view employer data that does not exist

    def test_view_employer_data_does_not_exist(self):
        url = reverse("view-employer",kwargs={"pk": 9})
        response = self.client.get(url)
        self.assertEquals(response.status_code,404)

    # Test searching employer data
    def test_search_employers(self):
        url = reverse("search-employers",kwargs={"page": 1})
        response = self.client.post(
            url,{"status": 0,"job_title": "to create"})

        # Check if the right data is contained in the response
        self.assertContains(response,"Carpenter to create me something")

        # Now test a GET request ie searching using session data
        response = self.client.get(url)
        # Check if the right data is contained in the response
        self.assertContains(response,"Carpenter to create me something")

    # Test if specific job seeker data is viewable
    def test_view_job_seeker_data(self):
        url = reverse("view-job-seeker","Carpenter to create me something")


class TestViewsLiveServer(StaticLiveServerTestCase):
    def setUp(self):
        self.browser = webdriver.Firefox()
        date_str = "2020-09-15"
        temp_date = parse_date(date_str)
        # Create a list of employer objects
        Employer.objects.create(
            firstname="Patrice","Chikerema")

    def tearDown(self):
        self.browser.close()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。