コード例 #1
0
ファイル: test_interview.py プロジェクト: MorezMartin/erpnext
    def test_notification_on_rescheduling(self):
        job_applicant = create_job_applicant()
        interview = create_interview_and_dependencies(job_applicant.name,
                                                      scheduled_on=add_days(
                                                          getdate(), -4))

        previous_scheduled_date = interview.scheduled_on
        frappe.db.sql("DELETE FROM `tabEmail Queue`")

        interview.reschedule_interview(add_days(
            getdate(previous_scheduled_date), 2),
                                       from_time=nowtime(),
                                       to_time=nowtime())
        interview.reload()

        self.assertEqual(interview.scheduled_on,
                         add_days(getdate(previous_scheduled_date), 2))

        notification = frappe.get_all(
            "Email Queue",
            filters={
                "message":
                ("like", "%Your Interview session is rescheduled from%")
            })
        self.assertIsNotNone(notification)
コード例 #2
0
    def test_job_applicant_update(self):
        create_staffing_plan()
        job_applicant = create_job_applicant(
            email_id="*****@*****.**")
        job_offer = create_job_offer(job_applicant=job_applicant.name)
        job_offer.submit()
        job_applicant.reload()
        self.assertEquals(job_applicant.status, "Accepted")

        # status update after rejection
        job_offer.status = "Rejected"
        job_offer.submit()
        job_applicant.reload()
        self.assertEquals(job_applicant.status, "Rejected")
コード例 #3
0
ファイル: test_interview.py プロジェクト: erpnext-tm/erpnext
	def test_notification_for_feedback_submission(self):
		from erpnext.hr.doctype.interview.interview import send_daily_feedback_reminder

		setup_reminder_settings()

		job_applicant = create_job_applicant()
		scheduled_on = add_days(getdate(), -4)
		create_interview_and_dependencies(job_applicant.name, scheduled_on=scheduled_on)

		frappe.db.sql("DELETE FROM `tabEmail Queue`")
		send_daily_feedback_reminder()

		email_queue = frappe.db.sql("""select * from `tabEmail Queue`""", as_dict=True)
		self.assertTrue("Subject: Interview Feedback Reminder" in email_queue[0].message)
コード例 #4
0
    def test_average_ratings_on_feedback_submission_and_cancellation(self):
        job_applicant = create_job_applicant()
        interview = create_interview_and_dependencies(job_applicant.name,
                                                      scheduled_on=add_days(
                                                          getdate(), -1))
        skill_ratings = get_skills_rating(interview.interview_round)

        # For First Interviewer Feedback
        interviewer = interview.interview_details[0].interviewer
        frappe.set_user(interviewer)

        # calculating Average
        feedback_1 = create_interview_feedback(interview.name, interviewer,
                                               skill_ratings)

        total_rating = 0
        for d in feedback_1.skill_assessment:
            if d.rating:
                total_rating += d.rating

        avg_rating = flt(total_rating / len(feedback_1.skill_assessment)
                         if len(feedback_1.skill_assessment) else 0)

        self.assertEqual(flt(avg_rating, 2), flt(feedback_1.average_rating, 2))

        avg_on_interview_detail = frappe.db.get_value(
            "Interview Detail",
            {
                "parent": feedback_1.interview,
                "interviewer": feedback_1.interviewer,
                "interview_feedback": feedback_1.name,
            },
            "average_rating",
        )

        # 1. average should be reflected in Interview Detail.
        self.assertEqual(flt(avg_on_interview_detail, 2),
                         flt(feedback_1.average_rating, 2))
        """For Second Interviewer Feedback"""
        interviewer = interview.interview_details[1].interviewer
        frappe.set_user(interviewer)

        feedback_2 = create_interview_feedback(interview.name, interviewer,
                                               skill_ratings)
        interview.reload()

        feedback_2.cancel()
        interview.reload()

        frappe.set_user("Administrator")
コード例 #5
0
    def test_job_applicant_update(self):
        frappe.db.set_value("HR Settings", None, "check_vacancies", 0)
        create_staffing_plan()
        job_applicant = create_job_applicant(
            email_id="*****@*****.**")
        job_offer = create_job_offer(job_applicant=job_applicant.name)
        job_offer.submit()
        job_applicant.reload()
        self.assertEqual(job_applicant.status, "Accepted")

        # status update after rejection
        job_offer.status = "Rejected"
        job_offer.submit()
        job_applicant.reload()
        self.assertEquals(job_applicant.status, "Rejected")
        frappe.db.set_value("HR Settings", None, "check_vacancies", 1)
コード例 #6
0
ファイル: test_interview.py プロジェクト: erpnext-tm/erpnext
	def test_notification_for_scheduling(self):
		from erpnext.hr.doctype.interview.interview import send_interview_reminder

		setup_reminder_settings()

		job_applicant = create_job_applicant()
		scheduled_on = datetime.datetime.now() + datetime.timedelta(minutes=10)

		interview = create_interview_and_dependencies(job_applicant.name, scheduled_on=scheduled_on)

		frappe.db.sql("DELETE FROM `tabEmail Queue`")
		send_interview_reminder()

		interview.reload()

		email_queue = frappe.db.sql("""select * from `tabEmail Queue`""", as_dict=True)
		self.assertTrue("Subject: Interview Reminder" in email_queue[0].message)
コード例 #7
0
ファイル: test_interview.py プロジェクト: ankush/erpnext
    def test_get_interview_details_for_applicant_dashboard(self):
        job_applicant = create_job_applicant()
        interview = create_interview_and_dependencies(job_applicant.name)

        details = get_interview_details(job_applicant.name)
        self.assertEqual(details.get("stars"), 5)
        self.assertEqual(
            details.get("interviews").get(interview.name),
            {
                "name": interview.name,
                "interview_round": interview.interview_round,
                "expected_average_rating":
                interview.expected_average_rating * 5,
                "average_rating": interview.average_rating * 5,
                "status": "Pending",
            },
        )
コード例 #8
0
    def test_job_offer_creation_against_vacancies(self):
        create_staffing_plan(
            staffing_details=[{
                "designation": "Designer",
                "vacancies": 0,
                "estimated_cost_per_position": 5000
            }])
        frappe.db.set_value("HR Settings", None, "check_vacancies", 1)
        job_applicant = create_job_applicant(
            email_id="*****@*****.**")
        job_offer = create_job_offer(job_applicant=job_applicant.name,
                                     designation="Researcher")
        self.assertRaises(frappe.ValidationError, job_offer.submit)

        # test creation of job offer when vacancies are not present
        frappe.db.set_value("HR Settings", None, "check_vacancies", 0)
        job_offer.submit()
        self.assertTrue(frappe.db.exists("Job Offer", job_offer.name))
コード例 #9
0
def create_job_offer(**args):
    args = frappe._dict(args)
    if not args.job_applicant:
        job_applicant = create_job_applicant()

    if not frappe.db.exists("Designation", args.designation):
        designation = create_designation(designation_name=args.designation)

    job_offer = frappe.get_doc({
        "doctype":
        "Job Offer",
        "job_applicant":
        args.job_applicant or job_applicant.name,
        "offer_date":
        args.offer_date or nowdate(),
        "designation":
        args.designation or "Researcher",
        "status":
        args.status or "Accepted"
    })
    return job_offer
コード例 #10
0
    def test_validation_for_skill_set(self):
        frappe.set_user("Administrator")
        job_applicant = create_job_applicant()
        interview = create_interview_and_dependencies(job_applicant.name,
                                                      scheduled_on=add_days(
                                                          getdate(), -1))
        skill_ratings = get_skills_rating(interview.interview_round)

        interviewer = interview.interview_details[0].interviewer
        create_skill_set(["Leadership"])

        interview_feedback = create_interview_feedback(interview.name,
                                                       interviewer,
                                                       skill_ratings)
        interview_feedback.append("skill_assessment", {
            "skill": "Leadership",
            "rating": 0.8
        })
        frappe.set_user(interviewer)

        self.assertRaises(frappe.ValidationError, interview_feedback.save)

        frappe.set_user("Administrator")
コード例 #11
0
ファイル: test_interview.py プロジェクト: MorezMartin/erpnext
 def test_validations_for_designation(self):
     job_applicant = create_job_applicant()
     interview = create_interview_and_dependencies(
         job_applicant.name, designation='_Test_Sales_manager', save=0)
     self.assertRaises(DuplicateInterviewRoundError, interview.save)