正在显示
26 个修改的文件
包含
598 行增加
和
93 行删除
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <project version="4"> | 2 | <project version="4"> |
3 | <component name="ChangeListManager"> | 3 | <component name="ChangeListManager"> |
4 | - <list default="true" id="129454fc-5415-4c7e-9855-d0293355ede5" name="Default Changelist" comment="版本:1.0.13 1.封装生成身份证"年""> | 4 | + <list default="true" id="129454fc-5415-4c7e-9855-d0293355ede5" name="Default Changelist" comment="1.项目维护"> |
5 | + <change afterPath="$PROJECT_DIR$/data/Internship_manage/test_08_log_marking.xlsx" afterDir="false" /> | ||
6 | + <change afterPath="$PROJECT_DIR$/data/Internship_manage/test_09_leave_record.xlsx" afterDir="false" /> | ||
5 | <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> | 7 | <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> |
8 | + <change beforePath="$PROJECT_DIR$/conf/config.ini" beforeDir="false" afterPath="$PROJECT_DIR$/conf/config.ini" afterDir="false" /> | ||
6 | <change beforePath="$PROJECT_DIR$/data/Internship_manage/test_07_apply_audit.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/Internship_manage/test_07_apply_audit.xlsx" afterDir="false" /> | 9 | <change beforePath="$PROJECT_DIR$/data/Internship_manage/test_07_apply_audit.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/Internship_manage/test_07_apply_audit.xlsx" afterDir="false" /> |
7 | <change beforePath="$PROJECT_DIR$/data/Internship_preparation/test_04_internship_plan.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/Internship_preparation/test_04_internship_plan.xlsx" afterDir="false" /> | 10 | <change beforePath="$PROJECT_DIR$/data/Internship_preparation/test_04_internship_plan.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/Internship_preparation/test_04_internship_plan.xlsx" afterDir="false" /> |
8 | <change beforePath="$PROJECT_DIR$/data/Internship_preparation/test_05_internship_project.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/Internship_preparation/test_05_internship_project.xlsx" afterDir="false" /> | 11 | <change beforePath="$PROJECT_DIR$/data/Internship_preparation/test_05_internship_project.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/Internship_preparation/test_05_internship_project.xlsx" afterDir="false" /> |
@@ -15,9 +18,16 @@ | @@ -15,9 +18,16 @@ | ||
15 | <change beforePath="$PROJECT_DIR$/data/teaching_affairs/test_03_student.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_student.xlsx" afterDir="false" /> | 18 | <change beforePath="$PROJECT_DIR$/data/teaching_affairs/test_03_student.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_student.xlsx" afterDir="false" /> |
16 | <change beforePath="$PROJECT_DIR$/data/teaching_affairs/test_03_teacher.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_teacher.xlsx" afterDir="false" /> | 19 | <change beforePath="$PROJECT_DIR$/data/teaching_affairs/test_03_teacher.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_teacher.xlsx" afterDir="false" /> |
17 | <change beforePath="$PROJECT_DIR$/data/test_01_login.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/test_01_login.xlsx" afterDir="false" /> | 20 | <change beforePath="$PROJECT_DIR$/data/test_01_login.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/test_01_login.xlsx" afterDir="false" /> |
18 | - <change beforePath="$PROJECT_DIR$/logs/log.log.2022-12-24" beforeDir="false" /> | ||
19 | <change beforePath="$PROJECT_DIR$/report/history.json" beforeDir="false" afterPath="$PROJECT_DIR$/report/history.json" afterDir="false" /> | 21 | <change beforePath="$PROJECT_DIR$/report/history.json" beforeDir="false" afterPath="$PROJECT_DIR$/report/history.json" afterDir="false" /> |
22 | + <change beforePath="$PROJECT_DIR$/report/report2.html" beforeDir="false" afterPath="$PROJECT_DIR$/report/report2.html" afterDir="false" /> | ||
23 | + <change beforePath="$PROJECT_DIR$/run.py" beforeDir="false" afterPath="$PROJECT_DIR$/run.py" afterDir="false" /> | ||
24 | + <change beforePath="$PROJECT_DIR$/testcase/test_03_teaching_affairs.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_03_teaching_affairs.py" afterDir="false" /> | ||
25 | + <change beforePath="$PROJECT_DIR$/testcase/test_04_Internship_preparation.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_04_Internship_preparation.py" afterDir="false" /> | ||
26 | + <change beforePath="$PROJECT_DIR$/testcase/test_05_student_practice.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_05_student_practice.py" afterDir="false" /> | ||
20 | <change beforePath="$PROJECT_DIR$/testcase/test_06_internship_manage.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_06_internship_manage.py" afterDir="false" /> | 27 | <change beforePath="$PROJECT_DIR$/testcase/test_06_internship_manage.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_06_internship_manage.py" afterDir="false" /> |
28 | + <change beforePath="$PROJECT_DIR$/tools/fixture.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools/fixture.py" afterDir="false" /> | ||
29 | + <change beforePath="$PROJECT_DIR$/tools/function.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools/function.py" afterDir="false" /> | ||
30 | + <change beforePath="$PROJECT_DIR$/tools/handle_token.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools/handle_token.py" afterDir="false" /> | ||
21 | </list> | 31 | </list> |
22 | <option name="SHOW_DIALOG" value="false" /> | 32 | <option name="SHOW_DIALOG" value="false" /> |
23 | <option name="HIGHLIGHT_CONFLICTS" value="true" /> | 33 | <option name="HIGHLIGHT_CONFLICTS" value="true" /> |
@@ -68,19 +78,19 @@ | @@ -68,19 +78,19 @@ | ||
68 | <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" /> | 78 | <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" /> |
69 | <property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> | 79 | <property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> |
70 | <property name="WebServerToolWindowFactoryState" value="false" /> | 80 | <property name="WebServerToolWindowFactoryState" value="false" /> |
71 | - <property name="last_opened_file_path" value="$PROJECT_DIR$/data/Internship_manage" /> | 81 | + <property name="last_opened_file_path" value="$PROJECT_DIR$/data/Internship_preparation" /> |
72 | <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> | 82 | <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> |
73 | </component> | 83 | </component> |
74 | <component name="RecentsManager"> | 84 | <component name="RecentsManager"> |
75 | <key name="CopyFile.RECENT_KEYS"> | 85 | <key name="CopyFile.RECENT_KEYS"> |
86 | + <recent name="$PROJECT_DIR$/data/Internship_preparation" /> | ||
76 | <recent name="$PROJECT_DIR$/data/Internship_manage" /> | 87 | <recent name="$PROJECT_DIR$/data/Internship_manage" /> |
77 | <recent name="$PROJECT_DIR$/data/student_practice" /> | 88 | <recent name="$PROJECT_DIR$/data/student_practice" /> |
78 | - <recent name="$PROJECT_DIR$/data/Internship_preparation" /> | ||
79 | <recent name="$PROJECT_DIR$/data/teaching_affairs" /> | 89 | <recent name="$PROJECT_DIR$/data/teaching_affairs" /> |
80 | <recent name="$PROJECT_DIR$/tools" /> | 90 | <recent name="$PROJECT_DIR$/tools" /> |
81 | </key> | 91 | </key> |
82 | </component> | 92 | </component> |
83 | - <component name="RunManager" selected="Python tests.Unittests in test_06_internship_manage.py"> | 93 | + <component name="RunManager" selected="Python.run"> |
84 | <configuration name="aaa" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true"> | 94 | <configuration name="aaa" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true"> |
85 | <module name="yxly2" /> | 95 | <module name="yxly2" /> |
86 | <option name="INTERPRETER_OPTIONS" value="" /> | 96 | <option name="INTERPRETER_OPTIONS" value="" /> |
@@ -186,11 +196,11 @@ | @@ -186,11 +196,11 @@ | ||
186 | </list> | 196 | </list> |
187 | <recent_temporary> | 197 | <recent_temporary> |
188 | <list> | 198 | <list> |
189 | - <item itemvalue="Python tests.Unittests in test_06_internship_manage.py" /> | ||
190 | <item itemvalue="Python.run" /> | 199 | <item itemvalue="Python.run" /> |
191 | - <item itemvalue="Python.aaa" /> | ||
192 | <item itemvalue="Python.handle_token" /> | 200 | <item itemvalue="Python.handle_token" /> |
201 | + <item itemvalue="Python tests.Unittests in test_06_internship_manage.py" /> | ||
193 | <item itemvalue="Python tests.Unittests in test_04_Internship_preparation.py" /> | 202 | <item itemvalue="Python tests.Unittests in test_04_Internship_preparation.py" /> |
203 | + <item itemvalue="Python.aaa" /> | ||
194 | </list> | 204 | </list> |
195 | </recent_temporary> | 205 | </recent_temporary> |
196 | </component> | 206 | </component> |
@@ -239,7 +249,44 @@ | @@ -239,7 +249,44 @@ | ||
239 | <workItem from="1675923047370" duration="1840000" /> | 249 | <workItem from="1675923047370" duration="1840000" /> |
240 | <workItem from="1675993944948" duration="19838000" /> | 250 | <workItem from="1675993944948" duration="19838000" /> |
241 | <workItem from="1676352585519" duration="649000" /> | 251 | <workItem from="1676352585519" duration="649000" /> |
242 | - <workItem from="1676429711639" duration="13811000" /> | 252 | + <workItem from="1676429711639" duration="16558000" /> |
253 | + <workItem from="1676533277102" duration="8356000" /> | ||
254 | + <workItem from="1676598554552" duration="16514000" /> | ||
255 | + <workItem from="1676857239215" duration="17927000" /> | ||
256 | + <workItem from="1676943889754" duration="23167000" /> | ||
257 | + <workItem from="1677465101095" duration="3714000" /> | ||
258 | + <workItem from="1678066872906" duration="15833000" /> | ||
259 | + <workItem from="1678342329058" duration="349000" /> | ||
260 | + <workItem from="1678440283423" duration="3522000" /> | ||
261 | + <workItem from="1678670968785" duration="30552000" /> | ||
262 | + <workItem from="1679049143003" duration="2741000" /> | ||
263 | + <workItem from="1679302047492" duration="3219000" /> | ||
264 | + <workItem from="1679463110512" duration="4971000" /> | ||
265 | + <workItem from="1679635698276" duration="13882000" /> | ||
266 | + <workItem from="1679999876828" duration="52000" /> | ||
267 | + <workItem from="1680076840448" duration="16953000" /> | ||
268 | + <workItem from="1683256734428" duration="58000" /> | ||
269 | + <workItem from="1683265845967" duration="968000" /> | ||
270 | + <workItem from="1686724205755" duration="3232000" /> | ||
271 | + <workItem from="1686792679924" duration="2619000" /> | ||
272 | + <workItem from="1687138769856" duration="7331000" /> | ||
273 | + <workItem from="1687656975195" duration="6855000" /> | ||
274 | + <workItem from="1687743036927" duration="4715000" /> | ||
275 | + <workItem from="1687830426053" duration="2545000" /> | ||
276 | + <workItem from="1687847849541" duration="1370000" /> | ||
277 | + <workItem from="1687852053143" duration="1661000" /> | ||
278 | + <workItem from="1687855288373" duration="2781000" /> | ||
279 | + <workItem from="1687916234000" duration="3333000" /> | ||
280 | + <workItem from="1688003499790" duration="3404000" /> | ||
281 | + <workItem from="1688104723785" duration="2859000" /> | ||
282 | + <workItem from="1688362204086" duration="2377000" /> | ||
283 | + <workItem from="1689561559287" duration="2760000" /> | ||
284 | + <workItem from="1689644168358" duration="6421000" /> | ||
285 | + <workItem from="1689674572646" duration="1719000" /> | ||
286 | + <workItem from="1689730508198" duration="11129000" /> | ||
287 | + <workItem from="1689816981406" duration="4617000" /> | ||
288 | + <workItem from="1689903460923" duration="538000" /> | ||
289 | + <workItem from="1690180441280" duration="301000" /> | ||
243 | </task> | 290 | </task> |
244 | <task id="LOCAL-00001" summary="1.0.0 首次提交"> | 291 | <task id="LOCAL-00001" summary="1.0.0 首次提交"> |
245 | <created>1671544396986</created> | 292 | <created>1671544396986</created> |
@@ -395,7 +442,14 @@ | @@ -395,7 +442,14 @@ | ||
395 | <option name="project" value="LOCAL" /> | 442 | <option name="project" value="LOCAL" /> |
396 | <updated>1675679274029</updated> | 443 | <updated>1675679274029</updated> |
397 | </task> | 444 | </task> |
398 | - <option name="localTasksCounter" value="23" /> | 445 | + <task id="LOCAL-00023" summary="版本:1.0.14 1.学生端进行选择开始实习时间 2.生成实习单,当前学生进入实习中"> |
446 | + <created>1676453939322</created> | ||
447 | + <option name="number" value="00023" /> | ||
448 | + <option name="presentableId" value="LOCAL-00023" /> | ||
449 | + <option name="project" value="LOCAL" /> | ||
450 | + <updated>1676453939322</updated> | ||
451 | + </task> | ||
452 | + <option name="localTasksCounter" value="24" /> | ||
399 | <servers /> | 453 | <servers /> |
400 | </component> | 454 | </component> |
401 | <component name="TypeScriptGeneratedFilesManager"> | 455 | <component name="TypeScriptGeneratedFilesManager"> |
@@ -446,7 +500,8 @@ | @@ -446,7 +500,8 @@ | ||
446 | <MESSAGE value="版本:1.0.11 1.新增学校审核用例逻辑判断" /> | 500 | <MESSAGE value="版本:1.0.11 1.新增学校审核用例逻辑判断" /> |
447 | <MESSAGE value="版本:1.0.12 1.优化hr登陆问题" /> | 501 | <MESSAGE value="版本:1.0.12 1.优化hr登陆问题" /> |
448 | <MESSAGE value="版本:1.0.13 1.封装生成身份证"年"" /> | 502 | <MESSAGE value="版本:1.0.13 1.封装生成身份证"年"" /> |
449 | - <option name="LAST_COMMIT_MESSAGE" value="版本:1.0.13 1.封装生成身份证"年"" /> | 503 | + <MESSAGE value="版本:1.0.14 1.学生端进行选择开始实习时间 2.生成实习单,当前学生进入实习中" /> |
504 | + <option name="LAST_COMMIT_MESSAGE" value="版本:1.0.14 1.学生端进行选择开始实习时间 2.生成实习单,当前学生进入实习中" /> | ||
450 | </component> | 505 | </component> |
451 | <component name="XDebuggerManager"> | 506 | <component name="XDebuggerManager"> |
452 | <breakpoint-manager> | 507 | <breakpoint-manager> |
@@ -503,17 +558,17 @@ | @@ -503,17 +558,17 @@ | ||
503 | </line-breakpoint> | 558 | </line-breakpoint> |
504 | <line-breakpoint suspend="THREAD" type="python-line"> | 559 | <line-breakpoint suspend="THREAD" type="python-line"> |
505 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> | 560 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> |
506 | - <line>291</line> | 561 | + <line>294</line> |
507 | <option name="timeStamp" value="35" /> | 562 | <option name="timeStamp" value="35" /> |
508 | </line-breakpoint> | 563 | </line-breakpoint> |
509 | <line-breakpoint suspend="THREAD" type="python-line"> | 564 | <line-breakpoint suspend="THREAD" type="python-line"> |
510 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> | 565 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> |
511 | - <line>319</line> | 566 | + <line>322</line> |
512 | <option name="timeStamp" value="37" /> | 567 | <option name="timeStamp" value="37" /> |
513 | </line-breakpoint> | 568 | </line-breakpoint> |
514 | <line-breakpoint suspend="THREAD" type="python-line"> | 569 | <line-breakpoint suspend="THREAD" type="python-line"> |
515 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> | 570 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> |
516 | - <line>363</line> | 571 | + <line>366</line> |
517 | <option name="timeStamp" value="38" /> | 572 | <option name="timeStamp" value="38" /> |
518 | </line-breakpoint> | 573 | </line-breakpoint> |
519 | <line-breakpoint suspend="THREAD" type="python-line"> | 574 | <line-breakpoint suspend="THREAD" type="python-line"> |
@@ -562,23 +617,13 @@ | @@ -562,23 +617,13 @@ | ||
562 | <option name="timeStamp" value="78" /> | 617 | <option name="timeStamp" value="78" /> |
563 | </line-breakpoint> | 618 | </line-breakpoint> |
564 | <line-breakpoint suspend="THREAD" type="python-line"> | 619 | <line-breakpoint suspend="THREAD" type="python-line"> |
565 | - <url>file://$PROJECT_DIR$/testcase/test_04_Internship_preparation.py</url> | ||
566 | - <line>323</line> | ||
567 | - <option name="timeStamp" value="79" /> | ||
568 | - </line-breakpoint> | ||
569 | - <line-breakpoint suspend="THREAD" type="python-line"> | ||
570 | - <url>file://$PROJECT_DIR$/tools/handle_token.py</url> | ||
571 | - <line>52</line> | ||
572 | - <option name="timeStamp" value="80" /> | ||
573 | - </line-breakpoint> | ||
574 | - <line-breakpoint suspend="THREAD" type="python-line"> | ||
575 | <url>file://$PROJECT_DIR$/testcase/test_05_student_practice.py</url> | 620 | <url>file://$PROJECT_DIR$/testcase/test_05_student_practice.py</url> |
576 | - <line>109</line> | 621 | + <line>110</line> |
577 | <option name="timeStamp" value="98" /> | 622 | <option name="timeStamp" value="98" /> |
578 | </line-breakpoint> | 623 | </line-breakpoint> |
579 | <line-breakpoint suspend="THREAD" type="python-line"> | 624 | <line-breakpoint suspend="THREAD" type="python-line"> |
580 | <url>file://$PROJECT_DIR$/testcase/test_05_student_practice.py</url> | 625 | <url>file://$PROJECT_DIR$/testcase/test_05_student_practice.py</url> |
581 | - <line>101</line> | 626 | + <line>102</line> |
582 | <option name="timeStamp" value="99" /> | 627 | <option name="timeStamp" value="99" /> |
583 | </line-breakpoint> | 628 | </line-breakpoint> |
584 | <line-breakpoint suspend="THREAD" type="python-line"> | 629 | <line-breakpoint suspend="THREAD" type="python-line"> |
@@ -588,27 +633,27 @@ | @@ -588,27 +633,27 @@ | ||
588 | </line-breakpoint> | 633 | </line-breakpoint> |
589 | <line-breakpoint suspend="THREAD" type="python-line"> | 634 | <line-breakpoint suspend="THREAD" type="python-line"> |
590 | <url>file://$PROJECT_DIR$/run.py</url> | 635 | <url>file://$PROJECT_DIR$/run.py</url> |
591 | - <line>56</line> | 636 | + <line>60</line> |
592 | <option name="timeStamp" value="101" /> | 637 | <option name="timeStamp" value="101" /> |
593 | </line-breakpoint> | 638 | </line-breakpoint> |
594 | <line-breakpoint suspend="THREAD" type="python-line"> | 639 | <line-breakpoint suspend="THREAD" type="python-line"> |
595 | <url>file://$PROJECT_DIR$/run.py</url> | 640 | <url>file://$PROJECT_DIR$/run.py</url> |
596 | - <line>52</line> | 641 | + <line>56</line> |
597 | <option name="timeStamp" value="102" /> | 642 | <option name="timeStamp" value="102" /> |
598 | </line-breakpoint> | 643 | </line-breakpoint> |
599 | <line-breakpoint suspend="THREAD" type="python-line"> | 644 | <line-breakpoint suspend="THREAD" type="python-line"> |
600 | <url>file://$PROJECT_DIR$/run.py</url> | 645 | <url>file://$PROJECT_DIR$/run.py</url> |
601 | - <line>50</line> | 646 | + <line>54</line> |
602 | <option name="timeStamp" value="103" /> | 647 | <option name="timeStamp" value="103" /> |
603 | </line-breakpoint> | 648 | </line-breakpoint> |
604 | <line-breakpoint suspend="THREAD" type="python-line"> | 649 | <line-breakpoint suspend="THREAD" type="python-line"> |
605 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 650 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
606 | - <line>51</line> | 651 | + <line>52</line> |
607 | <option name="timeStamp" value="106" /> | 652 | <option name="timeStamp" value="106" /> |
608 | </line-breakpoint> | 653 | </line-breakpoint> |
609 | <line-breakpoint suspend="THREAD" type="python-line"> | 654 | <line-breakpoint suspend="THREAD" type="python-line"> |
610 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 655 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
611 | - <line>83</line> | 656 | + <line>84</line> |
612 | <option name="timeStamp" value="111" /> | 657 | <option name="timeStamp" value="111" /> |
613 | </line-breakpoint> | 658 | </line-breakpoint> |
614 | <line-breakpoint suspend="THREAD" type="python-line"> | 659 | <line-breakpoint suspend="THREAD" type="python-line"> |
@@ -618,7 +663,7 @@ | @@ -618,7 +663,7 @@ | ||
618 | </line-breakpoint> | 663 | </line-breakpoint> |
619 | <line-breakpoint suspend="THREAD" type="python-line"> | 664 | <line-breakpoint suspend="THREAD" type="python-line"> |
620 | <url>file://$PROJECT_DIR$/tools/handle_token.py</url> | 665 | <url>file://$PROJECT_DIR$/tools/handle_token.py</url> |
621 | - <line>49</line> | 666 | + <line>50</line> |
622 | <option name="timeStamp" value="116" /> | 667 | <option name="timeStamp" value="116" /> |
623 | </line-breakpoint> | 668 | </line-breakpoint> |
624 | <line-breakpoint suspend="THREAD" type="python-line"> | 669 | <line-breakpoint suspend="THREAD" type="python-line"> |
@@ -628,27 +673,27 @@ | @@ -628,27 +673,27 @@ | ||
628 | </line-breakpoint> | 673 | </line-breakpoint> |
629 | <line-breakpoint suspend="THREAD" type="python-line"> | 674 | <line-breakpoint suspend="THREAD" type="python-line"> |
630 | <url>file://$PROJECT_DIR$/tools/handle_token.py</url> | 675 | <url>file://$PROJECT_DIR$/tools/handle_token.py</url> |
631 | - <line>85</line> | 676 | + <line>86</line> |
632 | <option name="timeStamp" value="122" /> | 677 | <option name="timeStamp" value="122" /> |
633 | </line-breakpoint> | 678 | </line-breakpoint> |
634 | <line-breakpoint suspend="THREAD" type="python-line"> | 679 | <line-breakpoint suspend="THREAD" type="python-line"> |
635 | <url>file://$PROJECT_DIR$/tools/handle_token.py</url> | 680 | <url>file://$PROJECT_DIR$/tools/handle_token.py</url> |
636 | - <line>92</line> | 681 | + <line>93</line> |
637 | <option name="timeStamp" value="123" /> | 682 | <option name="timeStamp" value="123" /> |
638 | </line-breakpoint> | 683 | </line-breakpoint> |
639 | <line-breakpoint suspend="THREAD" type="python-line"> | 684 | <line-breakpoint suspend="THREAD" type="python-line"> |
640 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 685 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
641 | - <line>205</line> | 686 | + <line>208</line> |
642 | <option name="timeStamp" value="124" /> | 687 | <option name="timeStamp" value="124" /> |
643 | </line-breakpoint> | 688 | </line-breakpoint> |
644 | <line-breakpoint suspend="THREAD" type="python-line"> | 689 | <line-breakpoint suspend="THREAD" type="python-line"> |
645 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 690 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
646 | - <line>208</line> | 691 | + <line>211</line> |
647 | <option name="timeStamp" value="125" /> | 692 | <option name="timeStamp" value="125" /> |
648 | </line-breakpoint> | 693 | </line-breakpoint> |
649 | <line-breakpoint suspend="THREAD" type="python-line"> | 694 | <line-breakpoint suspend="THREAD" type="python-line"> |
650 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 695 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
651 | - <line>50</line> | 696 | + <line>51</line> |
652 | <option name="timeStamp" value="126" /> | 697 | <option name="timeStamp" value="126" /> |
653 | </line-breakpoint> | 698 | </line-breakpoint> |
654 | <line-breakpoint suspend="THREAD" type="python-line"> | 699 | <line-breakpoint suspend="THREAD" type="python-line"> |
@@ -658,12 +703,12 @@ | @@ -658,12 +703,12 @@ | ||
658 | </line-breakpoint> | 703 | </line-breakpoint> |
659 | <line-breakpoint suspend="THREAD" type="python-line"> | 704 | <line-breakpoint suspend="THREAD" type="python-line"> |
660 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 705 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
661 | - <line>153</line> | 706 | + <line>156</line> |
662 | <option name="timeStamp" value="129" /> | 707 | <option name="timeStamp" value="129" /> |
663 | </line-breakpoint> | 708 | </line-breakpoint> |
664 | <line-breakpoint suspend="THREAD" type="python-line"> | 709 | <line-breakpoint suspend="THREAD" type="python-line"> |
665 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 710 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
666 | - <line>210</line> | 711 | + <line>213</line> |
667 | <option name="timeStamp" value="130" /> | 712 | <option name="timeStamp" value="130" /> |
668 | </line-breakpoint> | 713 | </line-breakpoint> |
669 | <line-breakpoint suspend="THREAD" type="python-line"> | 714 | <line-breakpoint suspend="THREAD" type="python-line"> |
@@ -673,22 +718,12 @@ | @@ -673,22 +718,12 @@ | ||
673 | </line-breakpoint> | 718 | </line-breakpoint> |
674 | <line-breakpoint suspend="THREAD" type="python-line"> | 719 | <line-breakpoint suspend="THREAD" type="python-line"> |
675 | <url>file://$PROJECT_DIR$/tools/fixture.py</url> | 720 | <url>file://$PROJECT_DIR$/tools/fixture.py</url> |
676 | - <line>38</line> | ||
677 | - <option name="timeStamp" value="138" /> | ||
678 | - </line-breakpoint> | ||
679 | - <line-breakpoint suspend="THREAD" type="python-line"> | ||
680 | - <url>file://$PROJECT_DIR$/tools/fixture.py</url> | ||
681 | - <line>36</line> | ||
682 | - <option name="timeStamp" value="139" /> | ||
683 | - </line-breakpoint> | ||
684 | - <line-breakpoint suspend="THREAD" type="python-line"> | ||
685 | - <url>file://$PROJECT_DIR$/tools/fixture.py</url> | ||
686 | <line>35</line> | 721 | <line>35</line> |
687 | <option name="timeStamp" value="140" /> | 722 | <option name="timeStamp" value="140" /> |
688 | </line-breakpoint> | 723 | </line-breakpoint> |
689 | <line-breakpoint suspend="THREAD" type="python-line"> | 724 | <line-breakpoint suspend="THREAD" type="python-line"> |
690 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 725 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
691 | - <line>249</line> | 726 | + <line>253</line> |
692 | <option name="timeStamp" value="142" /> | 727 | <option name="timeStamp" value="142" /> |
693 | </line-breakpoint> | 728 | </line-breakpoint> |
694 | <line-breakpoint suspend="THREAD" type="python-line"> | 729 | <line-breakpoint suspend="THREAD" type="python-line"> |
@@ -698,38 +733,113 @@ | @@ -698,38 +733,113 @@ | ||
698 | </line-breakpoint> | 733 | </line-breakpoint> |
699 | <line-breakpoint suspend="THREAD" type="python-line"> | 734 | <line-breakpoint suspend="THREAD" type="python-line"> |
700 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 735 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
701 | - <line>274</line> | ||
702 | - <option name="timeStamp" value="148" /> | 736 | + <line>279</line> |
737 | + <option name="timeStamp" value="149" /> | ||
703 | </line-breakpoint> | 738 | </line-breakpoint> |
704 | <line-breakpoint suspend="THREAD" type="python-line"> | 739 | <line-breakpoint suspend="THREAD" type="python-line"> |
705 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 740 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
706 | <line>275</line> | 741 | <line>275</line> |
707 | - <option name="timeStamp" value="149" /> | 742 | + <option name="timeStamp" value="150" /> |
708 | </line-breakpoint> | 743 | </line-breakpoint> |
709 | <line-breakpoint suspend="THREAD" type="python-line"> | 744 | <line-breakpoint suspend="THREAD" type="python-line"> |
710 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 745 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
711 | - <line>271</line> | ||
712 | - <option name="timeStamp" value="150" /> | 746 | + <line>241</line> |
747 | + <option name="timeStamp" value="162" /> | ||
748 | + </line-breakpoint> | ||
749 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
750 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | ||
751 | + <line>239</line> | ||
752 | + <option name="timeStamp" value="163" /> | ||
713 | </line-breakpoint> | 753 | </line-breakpoint> |
714 | <line-breakpoint suspend="THREAD" type="python-line"> | 754 | <line-breakpoint suspend="THREAD" type="python-line"> |
715 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 755 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
756 | + <line>434</line> | ||
757 | + <option name="timeStamp" value="165" /> | ||
758 | + </line-breakpoint> | ||
759 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
760 | + <url>file://$PROJECT_DIR$/tools/fixture.py</url> | ||
761 | + <line>49</line> | ||
762 | + <option name="timeStamp" value="166" /> | ||
763 | + </line-breakpoint> | ||
764 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
765 | + <url>file://$PROJECT_DIR$/tools/fixture.py</url> | ||
766 | + <line>50</line> | ||
767 | + <option name="timeStamp" value="167" /> | ||
768 | + </line-breakpoint> | ||
769 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
770 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | ||
771 | + <line>443</line> | ||
772 | + <option name="timeStamp" value="169" /> | ||
773 | + </line-breakpoint> | ||
774 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
775 | + <url>file://$PROJECT_DIR$/tools/fixture.py</url> | ||
776 | + <line>38</line> | ||
777 | + <option name="timeStamp" value="171" /> | ||
778 | + </line-breakpoint> | ||
779 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
780 | + <url>file://$PROJECT_DIR$/testcase/test_04_Internship_preparation.py</url> | ||
781 | + <line>323</line> | ||
782 | + <option name="timeStamp" value="174" /> | ||
783 | + </line-breakpoint> | ||
784 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
785 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | ||
786 | + <line>114</line> | ||
787 | + <option name="timeStamp" value="175" /> | ||
788 | + </line-breakpoint> | ||
789 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
790 | + <url>file://$PROJECT_DIR$/testcase/test_05_student_practice.py</url> | ||
716 | <line>93</line> | 791 | <line>93</line> |
717 | - <option name="timeStamp" value="151" /> | 792 | + <option name="timeStamp" value="177" /> |
718 | </line-breakpoint> | 793 | </line-breakpoint> |
719 | <line-breakpoint suspend="THREAD" type="python-line"> | 794 | <line-breakpoint suspend="THREAD" type="python-line"> |
720 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 795 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
721 | - <line>262</line> | ||
722 | - <option name="timeStamp" value="152" /> | 796 | + <line>314</line> |
797 | + <option name="timeStamp" value="182" /> | ||
723 | </line-breakpoint> | 798 | </line-breakpoint> |
724 | <line-breakpoint suspend="THREAD" type="python-line"> | 799 | <line-breakpoint suspend="THREAD" type="python-line"> |
725 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 800 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
726 | - <line>237</line> | ||
727 | - <option name="timeStamp" value="162" /> | 801 | + <line>266</line> |
802 | + <option name="timeStamp" value="191" /> | ||
728 | </line-breakpoint> | 803 | </line-breakpoint> |
729 | <line-breakpoint suspend="THREAD" type="python-line"> | 804 | <line-breakpoint suspend="THREAD" type="python-line"> |
730 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | 805 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
731 | - <line>235</line> | ||
732 | - <option name="timeStamp" value="163" /> | 806 | + <line>315</line> |
807 | + <option name="timeStamp" value="193" /> | ||
808 | + </line-breakpoint> | ||
809 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
810 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | ||
811 | + <line>265</line> | ||
812 | + <option name="timeStamp" value="194" /> | ||
813 | + </line-breakpoint> | ||
814 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
815 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | ||
816 | + <line>268</line> | ||
817 | + <option name="timeStamp" value="195" /> | ||
818 | + </line-breakpoint> | ||
819 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
820 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | ||
821 | + <line>257</line> | ||
822 | + <option name="timeStamp" value="198" /> | ||
823 | + </line-breakpoint> | ||
824 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
825 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | ||
826 | + <line>263</line> | ||
827 | + <option name="timeStamp" value="199" /> | ||
828 | + </line-breakpoint> | ||
829 | + <line-breakpoint suspend="THREAD" type="python-line"> | ||
830 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | ||
831 | + <line>278</line> | ||
832 | + <option name="timeStamp" value="201" /> | ||
833 | + </line-breakpoint> | ||
834 | + <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> | ||
835 | + <url>file://$PROJECT_DIR$/tools/handle_token.py</url> | ||
836 | + <line>53</line> | ||
837 | + <option name="timeStamp" value="203" /> | ||
838 | + </line-breakpoint> | ||
839 | + <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> | ||
840 | + <url>file://$PROJECT_DIR$/tools/handle_token.py</url> | ||
841 | + <line>51</line> | ||
842 | + <option name="timeStamp" value="204" /> | ||
733 | </line-breakpoint> | 843 | </line-breakpoint> |
734 | </breakpoints> | 844 | </breakpoints> |
735 | <default-breakpoints> | 845 | <default-breakpoints> |
@@ -740,19 +850,24 @@ | @@ -740,19 +850,24 @@ | ||
740 | </breakpoint> | 850 | </breakpoint> |
741 | </default-breakpoints> | 851 | </default-breakpoints> |
742 | </breakpoint-manager> | 852 | </breakpoint-manager> |
853 | + <watches-manager> | ||
854 | + <configuration name="tests"> | ||
855 | + <watch expression="select_daily_log_excel" /> | ||
856 | + </configuration> | ||
857 | + </watches-manager> | ||
743 | </component> | 858 | </component> |
744 | <component name="com.intellij.coverage.CoverageDataManagerImpl"> | 859 | <component name="com.intellij.coverage.CoverageDataManagerImpl"> |
745 | <SUITE FILE_PATH="coverage/yxly$fixture__1_.coverage" NAME="fixture (1) Coverage Results" MODIFIED="1672814917701" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tools" /> | 860 | <SUITE FILE_PATH="coverage/yxly$fixture__1_.coverage" NAME="fixture (1) Coverage Results" MODIFIED="1672814917701" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tools" /> |
746 | - <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_06_internship_manage_py.coverage" NAME="Unittests in test_06_internship_manage.py Coverage Results" MODIFIED="1676453107047" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | 861 | + <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_06_internship_manage_py.coverage" NAME="Unittests in test_06_internship_manage.py Coverage Results" MODIFIED="1678695618207" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> |
747 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_05_student_practice_py.coverage" NAME="Unittests in test_05_student_practice.py Coverage Results" MODIFIED="1673431777836" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | 862 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_05_student_practice_py.coverage" NAME="Unittests in test_05_student_practice.py Coverage Results" MODIFIED="1673431777836" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> |
748 | <SUITE FILE_PATH="coverage/yxly$fixture.coverage" NAME="fixture Coverage Results" MODIFIED="1671628017395" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | 863 | <SUITE FILE_PATH="coverage/yxly$fixture.coverage" NAME="fixture Coverage Results" MODIFIED="1671628017395" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> |
749 | - <SUITE FILE_PATH="coverage/yxly$handle_token.coverage" NAME="handle_token Coverage Results" MODIFIED="1674901030597" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tools" /> | 864 | + <SUITE FILE_PATH="coverage/yxly$handle_token.coverage" NAME="handle_token Coverage Results" MODIFIED="1687916804880" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tools" /> |
750 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_fixture_py.coverage" NAME="Unittests in fixture.py Coverage Results" MODIFIED="1671625806027" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | 865 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_fixture_py.coverage" NAME="Unittests in fixture.py Coverage Results" MODIFIED="1671625806027" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> |
751 | <SUITE FILE_PATH="coverage/yxly$aaa.coverage" NAME="aaa Coverage Results" MODIFIED="1675678970517" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tools" /> | 866 | <SUITE FILE_PATH="coverage/yxly$aaa.coverage" NAME="aaa Coverage Results" MODIFIED="1675678970517" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tools" /> |
752 | - <SUITE FILE_PATH="coverage/yxly$run.coverage" NAME="run Coverage Results" MODIFIED="1676452765292" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" /> | 867 | + <SUITE FILE_PATH="coverage/yxly$run.coverage" NAME="run Coverage Results" MODIFIED="1689843780840" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" /> |
753 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_02_system_management_py.coverage" NAME="Unittests in test_02_system_management.py Coverage Results" MODIFIED="1672304630144" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | 868 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_02_system_management_py.coverage" NAME="Unittests in test_02_system_management.py Coverage Results" MODIFIED="1672304630144" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> |
754 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_01_login_py.coverage" NAME="Unittests in test_01_login.py Coverage Results" MODIFIED="1671641941612" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | 869 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_01_login_py.coverage" NAME="Unittests in test_01_login.py Coverage Results" MODIFIED="1671641941612" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> |
755 | - <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_04_Internship_preparation_py.coverage" NAME="Unittests in test_04_Internship_preparation.py Coverage Results" MODIFIED="1674873836789" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | 870 | + <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_04_Internship_preparation_py.coverage" NAME="Unittests in test_04_Internship_preparation.py Coverage Results" MODIFIED="1678692199921" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> |
756 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_03_teaching_affairs_py.coverage" NAME="Unittests in test_03_teaching_affairs.py Coverage Results" MODIFIED="1672198781295" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | 871 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_03_teaching_affairs_py.coverage" NAME="Unittests in test_03_teaching_affairs.py Coverage Results" MODIFIED="1672198781295" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> |
757 | <SUITE FILE_PATH="coverage/yxly$pytest_in_test_02_system_management_py.coverage" NAME="pytest in test_02_system_management.py Coverage Results" MODIFIED="1671617451891" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | 872 | <SUITE FILE_PATH="coverage/yxly$pytest_in_test_02_system_management_py.coverage" NAME="pytest in test_02_system_management.py Coverage Results" MODIFIED="1671617451891" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> |
758 | </component> | 873 | </component> |
@@ -43,6 +43,7 @@ phone = 17301249973 | @@ -43,6 +43,7 @@ phone = 17301249973 | ||
43 | code = 8888 | 43 | code = 8888 |
44 | type = student | 44 | type = student |
45 | way = code | 45 | way = code |
46 | +schoolId = 1519958566130257922 | ||
46 | ;============================================================================================ | 47 | ;============================================================================================ |
47 | ;hr用户数据 | 48 | ;hr用户数据 |
48 | ;============================================================================================ | 49 | ;============================================================================================ |
@@ -55,6 +56,9 @@ password = a123456 | @@ -55,6 +56,9 @@ password = a123456 | ||
55 | [hr] | 56 | [hr] |
56 | ;岗位id | 57 | ;岗位id |
57 | hr_jobid = 1610468861604655106 | 58 | hr_jobid = 1610468861604655106 |
59 | +[school] | ||
60 | +;学校基地岗位id | ||
61 | +school_base_jobid = 1635095176676659202 | ||
58 | ;============================================================================================ | 62 | ;============================================================================================ |
59 | ;报告的相关配置 | 63 | ;报告的相关配置 |
60 | ;============================================================================================ | 64 | ;============================================================================================ |
@@ -78,6 +82,7 @@ templates = 1 | @@ -78,6 +82,7 @@ templates = 1 | ||
78 | collect = DEBUG | 82 | collect = DEBUG |
79 | ;输出到控制台等级 | 83 | ;输出到控制台等级 |
80 | console = CRITICAL | 84 | console = CRITICAL |
85 | +;console = ERROR | ||
81 | ;输出到文件根据时间轮转等级 | 86 | ;输出到文件根据时间轮转等级 |
82 | file = DEBUG | 87 | file = DEBUG |
83 | ;文件轮转时长单位 | 88 | ;文件轮转时长单位 |
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
此 diff 太大无法显示。
此 diff 太大无法显示。
@@ -20,10 +20,9 @@ from testcase.test_04_Internship_preparation import Test01addInternshipPlan, Tes | @@ -20,10 +20,9 @@ from testcase.test_04_Internship_preparation import Test01addInternshipPlan, Tes | ||
20 | # 学生查看实习、学生报名、 | 20 | # 学生查看实习、学生报名、 |
21 | from testcase.test_05_student_practice import Test01SelectAllPractice, Test02StudentApply | 21 | from testcase.test_05_student_practice import Test01SelectAllPractice, Test02StudentApply |
22 | # 查看报名审核、报名审核-学校端-进行审核、报名审核-hr端-待审核列表查看(实习申请列表)、 报名审核-hr端-进行审核 | 22 | # 查看报名审核、报名审核-学校端-进行审核、报名审核-hr端-待审核列表查看(实习申请列表)、 报名审核-hr端-进行审核 |
23 | -from testcase.test_06_internship_manage import Test01SelectApplyAuditList, Test02SchoolAudit, Test03HrSelectAuditList, \ | ||
24 | - Test04HrAudit | 23 | +from testcase.test_06_internship_manage import Test01SelectApplyAuditList, Test02SchoolAudit |
25 | 24 | ||
26 | -""" | 25 | +""" |
27 | 执行所有用例 | 26 | 执行所有用例 |
28 | """ | 27 | """ |
29 | # 创建测试套件 | 28 | # 创建测试套件 |
@@ -33,18 +32,23 @@ suite_all = unittest.TestSuite() | @@ -33,18 +32,23 @@ suite_all = unittest.TestSuite() | ||
33 | load = unittest.TestLoader() | 32 | load = unittest.TestLoader() |
34 | # ---用例放到加载器 | 33 | # ---用例放到加载器 |
35 | suite_all.addTest(load.discover(TestCase_Path)) | 34 | suite_all.addTest(load.discover(TestCase_Path)) |
35 | + | ||
36 | """ | 36 | """ |
37 | -执行单独模块用例 | ||
38 | -""" | 37 | +# 执行单独模块用例 |
38 | +# """ | ||
39 | a1 = unittest.TestLoader().loadTestsFromTestCase(TestLogin) | 39 | a1 = unittest.TestLoader().loadTestsFromTestCase(TestLogin) |
40 | a2 = unittest.TestLoader().loadTestsFromTestCase(Test01Department) | 40 | a2 = unittest.TestLoader().loadTestsFromTestCase(Test01Department) |
41 | a3 = unittest.TestLoader().loadTestsFromTestCase(Test02Specialty) | 41 | a3 = unittest.TestLoader().loadTestsFromTestCase(Test02Specialty) |
42 | a4 = unittest.TestLoader().loadTestsFromTestCase(Test03Year) | 42 | a4 = unittest.TestLoader().loadTestsFromTestCase(Test03Year) |
43 | a5 = unittest.TestLoader().loadTestsFromTestCase(Test02Class) | 43 | a5 = unittest.TestLoader().loadTestsFromTestCase(Test02Class) |
44 | a6 = unittest.TestLoader().loadTestsFromTestCase(Test04Student) | 44 | a6 = unittest.TestLoader().loadTestsFromTestCase(Test04Student) |
45 | +bbbbbb = unittest.TestLoader().loadTestsFromTestCase(Test02SchoolAudit) | ||
46 | +cccc = unittest.TestLoader().loadTestsFromTestCase(Test01addInternshipPlan) | ||
45 | suite = unittest.TestSuite([a1, a2, a3, a4, a5, a6]) | 47 | suite = unittest.TestSuite([a1, a2, a3, a4, a5, a6]) |
48 | +suite_a = unittest.TestSuite([cccc]) | ||
46 | 49 | ||
47 | runner_test(suite_all) # 执行 | 50 | runner_test(suite_all) # 执行 |
51 | +# runner_test(suite_a) # 执行 | ||
48 | 52 | ||
49 | # input_case = input("请输入需要执行的用例:") | 53 | # input_case = input("请输入需要执行的用例:") |
50 | # try: | 54 | # try: |
@@ -242,6 +242,8 @@ class Test03Course(unittest.TestCase): | @@ -242,6 +242,8 @@ class Test03Course(unittest.TestCase): | ||
242 | new_time = time.strftime("%Y%m%d_%H:%M:%S") | 242 | new_time = time.strftime("%Y%m%d_%H:%M:%S") |
243 | # 随机班级名称 | 243 | # 随机班级名称 |
244 | self.course_name = "py自动化课程" + new_time | 244 | self.course_name = "py自动化课程" + new_time |
245 | + # 随机课程代码 | ||
246 | + self.course_code = new_time | ||
245 | 247 | ||
246 | @data(*add_course_case) | 248 | @data(*add_course_case) |
247 | def test_add_course_info(self, case): | 249 | def test_add_course_info(self, case): |
@@ -256,7 +258,8 @@ class Test03Course(unittest.TestCase): | @@ -256,7 +258,8 @@ class Test03Course(unittest.TestCase): | ||
256 | case["data"] = case["data"].replace("#professionalId#", str(self.professionalId)) | 258 | case["data"] = case["data"].replace("#professionalId#", str(self.professionalId)) |
257 | if "#termIds#" in case["data"]: | 259 | if "#termIds#" in case["data"]: |
258 | case["data"] = case["data"].replace("#termIds#", str(self.termsId)) | 260 | case["data"] = case["data"].replace("#termIds#", str(self.termsId)) |
259 | - | 261 | + if "#code#" in case["data"]: |
262 | + case["data"] = case["data"].replace("#code#", str(self.course_code)) | ||
260 | data = json.loads(case["data"]) | 263 | data = json.loads(case["data"]) |
261 | expected = json.loads(case["expected"]) | 264 | expected = json.loads(case["expected"]) |
262 | # 调用接口 | 265 | # 调用接口 |
@@ -108,8 +108,8 @@ class Test01addInternshipPlan(unittest.TestCase): | @@ -108,8 +108,8 @@ class Test01addInternshipPlan(unittest.TestCase): | ||
108 | case["data"] = case["data"].replace("#courseId#", str(self.courseId)) # 课程 | 108 | case["data"] = case["data"].replace("#courseId#", str(self.courseId)) # 课程 |
109 | if "#departmentId#" in case["data"]: | 109 | if "#departmentId#" in case["data"]: |
110 | case["data"] = case["data"].replace("#departmentId#", str(self.department_id)) # 院系id | 110 | case["data"] = case["data"].replace("#departmentId#", str(self.department_id)) # 院系id |
111 | - if "#professionalId#" in case["data"]: | ||
112 | - case["data"] = case["data"].replace("#professionalId#", str(self.professionalId)) # 专业id | 111 | + if "#professionalIds#" in case["data"]: |
112 | + case["data"] = case["data"].replace("#professionalIds#", str(self.professionalId)) # 专业id | ||
113 | if "#classInfoId#" in case["data"]: | 113 | if "#classInfoId#" in case["data"]: |
114 | case["data"] = case["data"].replace("#classInfoId#", str(self.classId)) # 班级id | 114 | case["data"] = case["data"].replace("#classInfoId#", str(self.classId)) # 班级id |
115 | if "#teacherIds#" in case["data"]: | 115 | if "#teacherIds#" in case["data"]: |
@@ -314,7 +314,7 @@ class Test04publishInternshipProject(unittest.TestCase): | @@ -314,7 +314,7 @@ class Test04publishInternshipProject(unittest.TestCase): | ||
314 | cls.token = LoginToken.login_token() | 314 | cls.token = LoginToken.login_token() |
315 | 315 | ||
316 | def setUp(self): | 316 | def setUp(self): |
317 | - # ---获取计划id | 317 | + # ---获取项目id |
318 | select_project_excel = Excel(os.path.join(Internship_path, "test_05_internship_project.xlsx"), | 318 | select_project_excel = Excel(os.path.join(Internship_path, "test_05_internship_project.xlsx"), |
319 | "select_internship_project") | 319 | "select_internship_project") |
320 | read_project_excel = select_project_excel.read_excel_location("C2") | 320 | read_project_excel = select_project_excel.read_excel_location("C2") |
@@ -324,7 +324,7 @@ class Test04publishInternshipProject(unittest.TestCase): | @@ -324,7 +324,7 @@ class Test04publishInternshipProject(unittest.TestCase): | ||
324 | self.projectId = jsonpath(project_json, "$..id")[0] # 获取待发布项目id | 324 | self.projectId = jsonpath(project_json, "$..id")[0] # 获取待发布项目id |
325 | 325 | ||
326 | # ==================================================================== | 326 | # ==================================================================== |
327 | - # 发布计划 | 327 | + # 发布项目 |
328 | # ==================================================================== | 328 | # ==================================================================== |
329 | @data(*publish_project_case) | 329 | @data(*publish_project_case) |
330 | def test_publish_plan(self, case): | 330 | def test_publish_plan(self, case): |
@@ -362,6 +362,3 @@ class Test04publishInternshipProject(unittest.TestCase): | @@ -362,6 +362,3 @@ class Test04publishInternshipProject(unittest.TestCase): | ||
362 | self.publish_project.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | 362 | self.publish_project.write_excel(row=case["id"] + 1, column=9, value=case["data"]) |
363 | HandleLog.log.info("用例{},执行通过".format(case["title"])) | 363 | HandleLog.log.info("用例{},执行通过".format(case["title"])) |
364 | 364 | ||
365 | - | ||
366 | -if __name__ == '__main__': | ||
367 | - Test03addInternshipProject |
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | # ====================================== | 2 | # ====================================== |
3 | # @Software: PyCharm | 3 | # @Software: PyCharm |
4 | -# @Author : Shitou ✊ | 4 | +# @Author : Shitou ✊、 |
5 | # @Time : 2023/1/9 16:32 | 5 | # @Time : 2023/1/9 16:32 |
6 | # @FileName: test_05_student_practice.py | 6 | # @FileName: test_05_student_practice.py |
7 | # ====================================== | 7 | # ====================================== |
@@ -97,7 +97,8 @@ class Test02StudentApply(unittest.TestCase): | @@ -97,7 +97,8 @@ class Test02StudentApply(unittest.TestCase): | ||
97 | def test01student_apply(self, case): | 97 | def test01student_apply(self, case): |
98 | # 准备数据 | 98 | # 准备数据 |
99 | if "#jobId#" in case["data"]: | 99 | if "#jobId#" in case["data"]: |
100 | - case["data"] = case["data"].replace("#jobId#", str(conf.get("hr", "hr_jobid"))) | 100 | + # case["data"] = case["data"].replace("#jobId#", str(conf.get("hr", "hr_jobid")))----2023/03/13修改需求,修改为获取基地岗位 |
101 | + case["data"] = case["data"].replace("#jobId#", str(conf.get("school", "school_base_jobid"))) | ||
101 | data = json.loads(case["data"]) | 102 | data = json.loads(case["data"]) |
102 | expected = json.loads(case["expected"]) | 103 | expected = json.loads(case["expected"]) |
103 | if "{id}" in case["url"]: | 104 | if "{id}" in case["url"]: |
@@ -10,6 +10,7 @@ | @@ -10,6 +10,7 @@ | ||
10 | """ | 10 | """ |
11 | import json | 11 | import json |
12 | import os | 12 | import os |
13 | +import time | ||
13 | import unittest | 14 | import unittest |
14 | 15 | ||
15 | import requests | 16 | import requests |
@@ -27,7 +28,7 @@ from tools.handle_token import LoginToken, HrLoginToken, StudentLoginToken | @@ -27,7 +28,7 @@ from tools.handle_token import LoginToken, HrLoginToken, StudentLoginToken | ||
27 | # ==================实习管理菜单相关用例================== | 28 | # ==================实习管理菜单相关用例================== |
28 | 29 | ||
29 | # ==================================================================== | 30 | # ==================================================================== |
30 | -# 报名审核-待审核列表查看 | 31 | +# 报名审核-待审核列表查看--学校 |
31 | # ==================================================================== | 32 | # ==================================================================== |
32 | @ddt | 33 | @ddt |
33 | class Test01SelectApplyAuditList(unittest.TestCase): | 34 | class Test01SelectApplyAuditList(unittest.TestCase): |
@@ -97,7 +98,6 @@ class Test02SchoolAudit(unittest.TestCase): | @@ -97,7 +98,6 @@ class Test02SchoolAudit(unittest.TestCase): | ||
97 | def test01audit(self, case): | 98 | def test01audit(self, case): |
98 | if "#formIds#" in case["data"]: | 99 | if "#formIds#" in case["data"]: |
99 | case["data"] = case["data"].replace("#formIds#", str(self.applyId)) # 待审核id | 100 | case["data"] = case["data"].replace("#formIds#", str(self.applyId)) # 待审核id |
100 | - | ||
101 | # 准备数据 | 101 | # 准备数据 |
102 | data = json.loads(case["data"]) | 102 | data = json.loads(case["data"]) |
103 | expected = json.loads(case["expected"]) | 103 | expected = json.loads(case["expected"]) |
@@ -127,6 +127,9 @@ class Test02SchoolAudit(unittest.TestCase): | @@ -127,6 +127,9 @@ class Test02SchoolAudit(unittest.TestCase): | ||
127 | HandleLog.log.info("用例{},执行通过".format(case["title"])) | 127 | HandleLog.log.info("用例{},执行通过".format(case["title"])) |
128 | 128 | ||
129 | 129 | ||
130 | +""" | ||
131 | +需求改动,无需hr进行审核2023/03/13 | ||
132 | + | ||
130 | # ==================================================================== | 133 | # ==================================================================== |
131 | # 报名审核-hr端-待审核列表查看(实习申请列表) | 134 | # 报名审核-hr端-待审核列表查看(实习申请列表) |
132 | # ==================================================================== | 135 | # ==================================================================== |
@@ -226,6 +229,7 @@ class Test04HrAudit(unittest.TestCase): | @@ -226,6 +229,7 @@ class Test04HrAudit(unittest.TestCase): | ||
226 | # 将创建使用的数据写入到excel表格中 | 229 | # 将创建使用的数据写入到excel表格中 |
227 | self.hr_audit.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | 230 | self.hr_audit.write_excel(row=case["id"] + 1, column=9, value=case["data"]) |
228 | HandleLog.log.info("用例{},执行通过".format(case["title"])) | 231 | HandleLog.log.info("用例{},执行通过".format(case["title"])) |
232 | +""" | ||
229 | 233 | ||
230 | 234 | ||
231 | # ==================================================================== | 235 | # ==================================================================== |
@@ -234,7 +238,7 @@ class Test04HrAudit(unittest.TestCase): | @@ -234,7 +238,7 @@ class Test04HrAudit(unittest.TestCase): | ||
234 | @ddt | 238 | @ddt |
235 | class Test05StudentIntenship(unittest.TestCase): | 239 | class Test05StudentIntenship(unittest.TestCase): |
236 | student_start_internship = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), | 240 | student_start_internship = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), |
237 | - "student_start_internship") | 241 | + "student_start_internshipp") |
238 | student_start_internship_case = student_start_internship.read_excel() # 学生填写开始时间 | 242 | student_start_internship_case = student_start_internship.read_excel() # 学生填写开始时间 |
239 | 243 | ||
240 | # 登陆前置 | 244 | # 登陆前置 |
@@ -286,6 +290,380 @@ class Test05StudentIntenship(unittest.TestCase): | @@ -286,6 +290,380 @@ class Test05StudentIntenship(unittest.TestCase): | ||
286 | HandleLog.log.info("用例{},执行通过".format(case["title"])) | 290 | HandleLog.log.info("用例{},执行通过".format(case["title"])) |
287 | 291 | ||
288 | 292 | ||
289 | -if __name__ == '__main__': | ||
290 | - Test04HrAudit() | ||
291 | - Test05StudentIntenship() | 293 | +# ==================================================================== |
294 | +# 学校端---实习申请审核通过 | ||
295 | +# ==================================================================== | ||
296 | +@ddt | ||
297 | +class Test06SchoolSelectApply(unittest.TestCase): | ||
298 | + student_internship_applic = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), | ||
299 | + "school_audit_internship_applic") | ||
300 | + student_internship_applic_case = student_internship_applic.read_excel() | ||
301 | + | ||
302 | + @classmethod | ||
303 | + def setUpClass(cls): | ||
304 | + # 获取token | ||
305 | + cls.token = LoginToken.login_token() | ||
306 | + | ||
307 | + def setUp(self): | ||
308 | + # ---获取实习申请id---待审核 | ||
309 | + select_internship_applic = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), | ||
310 | + "school_select_internship_applic") | ||
311 | + read_internship_applic_excel = select_internship_applic.read_excel_location("C2") | ||
312 | + read_internship_applic_excel_d = select_internship_applic.read_excel_location("E2") # 读取params | ||
313 | + internship_applic_list = SelectData(str(read_internship_applic_excel), | ||
314 | + json.loads(read_internship_applic_excel_d)) | ||
315 | + internship_applic_json = internship_applic_list.select_list() | ||
316 | + self.internship_applic = jsonpath(internship_applic_json, "$..id")[0] # 获取实习申请待审核id | ||
317 | + | ||
318 | + @data(*student_internship_applic_case) | ||
319 | + def test01audit(self, case): | ||
320 | + if f"#id#" in case["url"]: | ||
321 | + case["url"] = case["url"].replace("#id#", str(self.internship_applic)) # 待审核id | ||
322 | + | ||
323 | + # 准备数据 | ||
324 | + data = json.loads(case["data"]) | ||
325 | + expected = json.loads(case["expected"]) | ||
326 | + # 调用接口 | ||
327 | + url = conf.get("url", "url_ip") + case["url"] | ||
328 | + herders = {} | ||
329 | + herders["Authorization"] = self.token | ||
330 | + request = requests.request(url=url, method=case["method"], json=data, headers=herders) | ||
331 | + res = request.json() | ||
332 | + print("用例入参:{}".format(data)) | ||
333 | + print("预期结果:", expected) | ||
334 | + print("实际结果:", res) | ||
335 | + # 断言 | ||
336 | + try: | ||
337 | + self.assertEqual(expected['msg'], res['msg']) | ||
338 | + self.assertEqual(expected['code'], res['code']) | ||
339 | + except AssertionError as e: | ||
340 | + # 写入Excel | ||
341 | + self.student_internship_applic.write_excel(row=case["id"] + 1, column=7, value="不通过") | ||
342 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | ||
343 | + HandleLog.log.exception(e) | ||
344 | + raise e | ||
345 | + else: | ||
346 | + self.student_internship_applic.write_excel(row=case["id"] + 1, column=7, value="通过") | ||
347 | + # 将创建使用的数据写入到excel表格中 | ||
348 | + self.student_internship_applic.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | ||
349 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) | ||
350 | + | ||
351 | + | ||
352 | +# ==================================================================== | ||
353 | +# 学生端---写周日志 | ||
354 | +# ==================================================================== | ||
355 | +@ddt | ||
356 | +class Test07StudentWriteLog(unittest.TestCase): | ||
357 | + student_write_log = Excel(os.path.join(Internship_manage, "test_08_log_marking.xlsx"), "write_log") | ||
358 | + student_write_log_case = student_write_log.read_excel() | ||
359 | + | ||
360 | + # 登陆前置 | ||
361 | + @classmethod | ||
362 | + def setUpClass(cls): | ||
363 | + cls.student_token = StudentLoginToken.login_token() | ||
364 | + | ||
365 | + def setUp(self): | ||
366 | + """单条用例执行前执行的函数""" | ||
367 | + self.new_time = time.strftime("%Y%m%d_%H:%M:%S") | ||
368 | + # 获取学生端实习中id | ||
369 | + student_select_intership_running_excle = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), | ||
370 | + "student_select_intership_wait") | ||
371 | + read_student_intership_excel = student_select_intership_running_excle.read_excel_location("C3") | ||
372 | + read_student_intership_excel_d = student_select_intership_running_excle.read_excel_location("E3") # 读取params | ||
373 | + student_intership_list = SelectData(str(read_student_intership_excel), | ||
374 | + json.loads(read_student_intership_excel_d)) | ||
375 | + student_intership_json = student_intership_list.student_select_list() # 正序查找 | ||
376 | + self.student_intership_id = jsonpath(student_intership_json, "$..id")[0] # 获取实习单实习中id | ||
377 | + | ||
378 | + @data(*student_write_log_case) | ||
379 | + def test01student_write_log(self, case): | ||
380 | + if "#formId#" in case["data"]: | ||
381 | + case["data"] = case["data"].replace("#formId#", str(self.student_intership_id)) | ||
382 | + if "#time#" in case["data"]: | ||
383 | + case["data"] = case["data"].replace("#time#", str(self.new_time)) | ||
384 | + # 准备数据 | ||
385 | + data = json.loads(case["data"]) | ||
386 | + expected = json.loads(case["expected"]) | ||
387 | + # 调用接口 | ||
388 | + url = conf.get("url", "url_ip") + case["url"] | ||
389 | + headers = {} | ||
390 | + headers["Authorization"] = self.student_token | ||
391 | + request = requests.request(url=url, method=case["method"], json=data, headers=headers) | ||
392 | + res = request.json() | ||
393 | + print("用例入参:{}".format(data)) | ||
394 | + print("预期结果:", expected) | ||
395 | + print("实际结果:", res) | ||
396 | + # 断言 | ||
397 | + try: | ||
398 | + self.assertEqual(expected['msg'], res['msg']) | ||
399 | + self.assertEqual(expected['code'], res['code']) | ||
400 | + except AssertionError as e: | ||
401 | + self.student_write_log.write_excel(row=case['id'] + 1, column=7, value="不通过") | ||
402 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | ||
403 | + HandleLog.log.exception(e) | ||
404 | + raise e | ||
405 | + else: | ||
406 | + self.student_write_log.write_excel(row=case["id"] + 1, column=7, value="通过") | ||
407 | + # 将创建使用的数据写入到excel表格中 | ||
408 | + self.student_write_log.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | ||
409 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) | ||
410 | + | ||
411 | + | ||
412 | +# ==================================================================== | ||
413 | +# 教师端---批阅周日志 | ||
414 | +# ==================================================================== | ||
415 | +@ddt | ||
416 | +class Test08ApproveLog(unittest.TestCase): | ||
417 | + teacher_approve_log = Excel(os.path.join(Internship_manage, "test_08_log_marking.xlsx"), "approve_log") | ||
418 | + teacher_approve_log_case = teacher_approve_log.read_excel() | ||
419 | + | ||
420 | + # 登陆前置 | ||
421 | + @classmethod | ||
422 | + def setUpClass(cls): | ||
423 | + cls.teacher_token = LoginToken.login_token() | ||
424 | + | ||
425 | + def setUp(self): | ||
426 | + # 获取周日志id | ||
427 | + # ---------------获取日志id | ||
428 | + select_daily_log = Excel(os.path.join(Internship_manage, "test_08_log_marking.xlsx"), | ||
429 | + "select_log") | ||
430 | + select_daily_log_excel = select_daily_log.read_excel_location("C2") | ||
431 | + select_daily_log_excel_d = select_daily_log.read_excel_location("E2") # 读取params | ||
432 | + daily_log_list = SelectData(str(select_daily_log_excel), | ||
433 | + json.loads(select_daily_log_excel_d)) | ||
434 | + daily_log_json = daily_log_list.select_list() # 正序查找 | ||
435 | + self.daily_ids = jsonpath(daily_log_json, "$..id")[0] # 获取日志id | ||
436 | + # ---------------获取周志id | ||
437 | + select_weekly_log = Excel(os.path.join(Internship_manage, "test_08_log_marking.xlsx"), | ||
438 | + "select_log") | ||
439 | + select_weekly_log_excel = select_weekly_log.read_excel_location("C3") | ||
440 | + select_weekly_log_excel_d = select_weekly_log.read_excel_location("E3") # 读取params | ||
441 | + weekly_log_list = SelectData(str(select_weekly_log_excel), | ||
442 | + json.loads(select_weekly_log_excel_d)) | ||
443 | + weekly_log_json = weekly_log_list.select_list() # 正序查找 | ||
444 | + self.weekly_ids = jsonpath(weekly_log_json, "$..id")[0] # 获取周志id | ||
445 | + # ---------------获取月志id | ||
446 | + select_monthly_log = Excel(os.path.join(Internship_manage, "test_08_log_marking.xlsx"), | ||
447 | + "select_log") | ||
448 | + select_monthly_log_excel = select_monthly_log.read_excel_location("C4") | ||
449 | + select_monthly_log_excel_d = select_monthly_log.read_excel_location("E4") # 读取params | ||
450 | + monthly_log_list = SelectData(str(select_monthly_log_excel), | ||
451 | + json.loads(select_monthly_log_excel_d)) | ||
452 | + monthly_log_json = monthly_log_list.select_list() # 正序查找 | ||
453 | + self.monthly_ids = jsonpath(monthly_log_json, "$..id")[0] # 获取月志id | ||
454 | + | ||
455 | + @data(*teacher_approve_log_case) | ||
456 | + def test01approve_log(self, case): | ||
457 | + if "#daily_ids#" in case["data"]: | ||
458 | + case["data"] = case["data"].replace("#daily_ids#", str(self.daily_ids)) # 日志 | ||
459 | + if "#weekly_ids#" in case["data"]: | ||
460 | + case["data"] = case["data"].replace("#weekly_ids#", str(self.weekly_ids)) # 周志 | ||
461 | + if "#monthly_ids#" in case["data"]: | ||
462 | + case["data"] = case["data"].replace("#monthly_ids#", str(self.monthly_ids)) # 月志 | ||
463 | + | ||
464 | + # 准备数据 | ||
465 | + data = json.loads(case["data"]) | ||
466 | + expected = json.loads(case["expected"]) | ||
467 | + # 调用接口 | ||
468 | + url = conf.get("url", "url_ip") + case["url"] | ||
469 | + headers = {} | ||
470 | + headers["Authorization"] = self.teacher_token | ||
471 | + request = requests.request(url=url, method=case["method"], json=data, headers=headers) | ||
472 | + res = request.json() | ||
473 | + print("用例入参:{}".format(data)) | ||
474 | + print("预期结果:", expected) | ||
475 | + print("实际结果:", res) | ||
476 | + # 断言 | ||
477 | + try: | ||
478 | + self.assertEqual(expected['msg'], res['msg']) | ||
479 | + self.assertEqual(expected['code'], res['code']) | ||
480 | + except AssertionError as e: | ||
481 | + self.teacher_approve_log.write_excel(row=case['id'] + 1, column=7, value="不通过") | ||
482 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | ||
483 | + HandleLog.log.exception(e) | ||
484 | + raise e | ||
485 | + else: | ||
486 | + self.teacher_approve_log.write_excel(row=case["id"] + 1, column=7, value="通过") | ||
487 | + # 将创建使用的数据写入到excel表格中 | ||
488 | + self.teacher_approve_log.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | ||
489 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) | ||
490 | + | ||
491 | + | ||
492 | +# ==================================================================== | ||
493 | +# 学生端---打卡签到 | ||
494 | +# ==================================================================== | ||
495 | +@ddt | ||
496 | +class Test09Attendance(unittest.TestCase): | ||
497 | + student_attendance = Excel(os.path.join(Internship_manage, "test_08_log_marking.xlsx"), "student_attendance") | ||
498 | + student_attendance_case = student_attendance.read_excel() | ||
499 | + | ||
500 | + # 登陆前置 | ||
501 | + @classmethod | ||
502 | + def setUpClass(cls): | ||
503 | + cls.student_token = StudentLoginToken.login_token() | ||
504 | + | ||
505 | + def setUp(self): | ||
506 | + # 获取学生端实习中id | ||
507 | + student_select_intership_running_excle = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), | ||
508 | + "student_select_intership_wait") | ||
509 | + read_student_intership_excel = student_select_intership_running_excle.read_excel_location("C3") | ||
510 | + read_student_intership_excel_d = student_select_intership_running_excle.read_excel_location("E3") # 读取params | ||
511 | + student_intership_list = SelectData(str(read_student_intership_excel), | ||
512 | + json.loads(read_student_intership_excel_d)) | ||
513 | + student_intership_json = student_intership_list.student_select_list() # 正序查找 | ||
514 | + self.student_intership_id = jsonpath(student_intership_json, "$..id")[0] # 获取实习单实习中id | ||
515 | + | ||
516 | + @data(*student_attendance_case) | ||
517 | + def test01student_attendance(self, case): | ||
518 | + if "#formId#" in case["data"]: | ||
519 | + case["data"] = case["data"].replace("#formId#", str(self.student_intership_id)) # 实习单 | ||
520 | + | ||
521 | + # 准备数据 | ||
522 | + data = json.loads(case["data"]) | ||
523 | + expected = json.loads(case["expected"]) | ||
524 | + # 调用接口 | ||
525 | + url = conf.get("url", "url_ip") + case["url"] | ||
526 | + headers = {} | ||
527 | + headers["Authorization"] = self.student_token | ||
528 | + request = requests.request(url=url, method=case["method"], json=data, headers=headers) | ||
529 | + res = request.json() | ||
530 | + print("用例入参:{}".format(data)) | ||
531 | + print("预期结果:", expected) | ||
532 | + print("实际结果:", res) | ||
533 | + # 断言 | ||
534 | + try: | ||
535 | + self.assertEqual(expected['msg'], res['msg']) | ||
536 | + self.assertEqual(expected['code'], res['code']) | ||
537 | + except AssertionError as e: | ||
538 | + self.student_attendance.write_excel(row=case['id'] + 1, column=7, value="不通过") | ||
539 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | ||
540 | + HandleLog.log.exception(e) | ||
541 | + raise e | ||
542 | + else: | ||
543 | + self.student_attendance.write_excel(row=case["id"] + 1, column=7, value="通过") | ||
544 | + # 将创建使用的数据写入到excel表格中 | ||
545 | + self.student_attendance.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | ||
546 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) | ||
547 | + | ||
548 | + | ||
549 | +# ==================================================================== | ||
550 | +# 学生端---请假申请 | ||
551 | +# ==================================================================== | ||
552 | + | ||
553 | +@ddt | ||
554 | +class Test10LeaveRecord(unittest.TestCase): | ||
555 | + student_leave_record = Excel(os.path.join(Internship_manage, "test_09_leave_record.xlsx"), "student_leave_record") | ||
556 | + student_leave_record_case = student_leave_record.read_excel() | ||
557 | + | ||
558 | + # 登陆的前置 | ||
559 | + @classmethod | ||
560 | + def setUpClass(cls): | ||
561 | + cls.student_token = StudentLoginToken.login_token() # 获取学生登陆小程序的token | ||
562 | + | ||
563 | + def setUp(self): | ||
564 | + """单条用例执行前执行的函数""" | ||
565 | + self.new_time = time.strftime("%Y%m%d_%H:%M:%S") | ||
566 | + # 获取学生端实习中id | ||
567 | + student_select_intership_running_excle = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), | ||
568 | + "student_select_intership_wait") | ||
569 | + read_student_intership_excel = student_select_intership_running_excle.read_excel_location("C3") | ||
570 | + read_student_intership_excel_d = student_select_intership_running_excle.read_excel_location("E3") # 读取params | ||
571 | + student_intership_list = SelectData(str(read_student_intership_excel), | ||
572 | + json.loads(read_student_intership_excel_d)) | ||
573 | + student_intership_json = student_intership_list.student_select_list() # 正序查找 | ||
574 | + self.student_intership_id = jsonpath(student_intership_json, "$..id")[0] # 获取实习单实习中id | ||
575 | + | ||
576 | + @data(*student_leave_record_case) | ||
577 | + def test01student_leave_record(self, case): | ||
578 | + if "#formId#" in case["data"]: | ||
579 | + case["data"] = case["data"].replace("#formId#", str(self.student_intership_id)) # 实习单 | ||
580 | + if "#time#" in case["data"]: | ||
581 | + case["data"] = case["data"].replace("#time#", str(self.new_time)) # 请假原因 | ||
582 | + # 准备数据 | ||
583 | + data = json.loads(case["data"]) | ||
584 | + expected = json.loads(case["expected"]) | ||
585 | + # 调用接口 | ||
586 | + url = conf.get("url", "url_ip") + case["url"] | ||
587 | + headers = {} | ||
588 | + headers["Authorization"] = self.student_token | ||
589 | + request = requests.request(url=url, method=case["method"], json=data, headers=headers) | ||
590 | + res = request.json() | ||
591 | + print("用例入参:{}".format(data)) | ||
592 | + print("预期结果:", expected) | ||
593 | + print("实际结果:", res) | ||
594 | + # 断言 | ||
595 | + try: | ||
596 | + self.assertEqual(expected['msg'], res['msg']) | ||
597 | + self.assertEqual(expected['code'], res['code']) | ||
598 | + except AssertionError as e: | ||
599 | + self.student_leave_record.write_excel(row=case['id'] + 1, column=7, value="不通过") | ||
600 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | ||
601 | + HandleLog.log.exception(e) | ||
602 | + raise e | ||
603 | + else: | ||
604 | + self.student_leave_record.write_excel(row=case["id"] + 1, column=7, value="通过") | ||
605 | + # 将创建使用的数据写入到excel表格中 | ||
606 | + self.student_leave_record.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | ||
607 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) | ||
608 | + | ||
609 | + | ||
610 | +# ==================================================================== | ||
611 | +# 教师端---请假审批--通过 | ||
612 | +# ==================================================================== | ||
613 | + | ||
614 | +@ddt | ||
615 | +class Test11TeacherAprove(unittest.TestCase): | ||
616 | + teacher_aprove = Excel(os.path.join(Internship_manage, "test_09_leave_record.xlsx"), "tacher_aprove") | ||
617 | + teacher_aprove_case = teacher_aprove.read_excel() | ||
618 | + | ||
619 | + # 登陆的前置 | ||
620 | + @classmethod | ||
621 | + def setUpClass(cls): | ||
622 | + cls.teacher_token = LoginToken.login_token() # 获取web教师端的token | ||
623 | + | ||
624 | + def setUp(self): | ||
625 | + """单条用例执行前执行的函数""" | ||
626 | + self.new_time = time.strftime("%Y%m%d_%H:%M:%S") | ||
627 | + # 获取请假批阅列表的id | ||
628 | + leave_record_excel = Excel(os.path.join(Internship_manage, "test_09_leave_record.xlsx"), | ||
629 | + "select_tacher_leave_record") | ||
630 | + read_leave_record = leave_record_excel.read_excel_location("C2") | ||
631 | + read_leave_record_d = leave_record_excel.read_excel_location("E2") | ||
632 | + teacher_leave_record_list = SelectData(str(read_leave_record), | ||
633 | + json.loads(read_leave_record_d)) | ||
634 | + teacher_leave_record_json = teacher_leave_record_list.select_list() # 正序查找 | ||
635 | + self.leave_record_id = jsonpath(teacher_leave_record_json, "$..id")[0] # 获取请假审批id | ||
636 | + | ||
637 | + @data(*teacher_aprove_case) | ||
638 | + def test01teacher_aprove(self, case): | ||
639 | + | ||
640 | + if "#time#" in case["data"]: | ||
641 | + case["data"] = case["data"].replace("#time#", str(self.new_time)) # 审批通过的回复 | ||
642 | + if "{id}" in case["url"]: | ||
643 | + case["url"] = case["url"].replace("{id}", str(self.leave_record_id)) | ||
644 | + # 准备数据 | ||
645 | + data = json.loads(case["data"]) | ||
646 | + expected = json.loads(case["expected"]) | ||
647 | + # 调用接口 | ||
648 | + url = conf.get("url", "url_ip") + case["url"] | ||
649 | + headers = {} | ||
650 | + headers["Authorization"] = self.teacher_token | ||
651 | + request = requests.request(url=url, method=case["method"], json=data, headers=headers) | ||
652 | + res = request.json() | ||
653 | + print("用例入参:{}".format(data)) | ||
654 | + print("预期结果:", expected) | ||
655 | + print("实际结果:", res) | ||
656 | + # 断言 | ||
657 | + try: | ||
658 | + self.assertEqual(expected['msg'], res['msg']) | ||
659 | + self.assertEqual(expected['code'], res['code']) | ||
660 | + except AssertionError as e: | ||
661 | + self.teacher_aprove.write_excel(row=case['id'] + 1, column=7, value="不通过") | ||
662 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | ||
663 | + HandleLog.log.exception(e) | ||
664 | + raise e | ||
665 | + else: | ||
666 | + self.teacher_aprove.write_excel(row=case["id"] + 1, column=7, value="通过") | ||
667 | + # 将创建使用的数据写入到excel表格中 | ||
668 | + self.teacher_aprove.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | ||
669 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) |
@@ -79,7 +79,7 @@ class RandomIdentification(object): | @@ -79,7 +79,7 @@ class RandomIdentification(object): | ||
79 | def ran(self): | 79 | def ran(self): |
80 | # 随机生成年月日 | 80 | # 随机生成年月日 |
81 | aaa = radar.random_date("1980", "2022") | 81 | aaa = radar.random_date("1980", "2022") |
82 | - yea = aaa.year # 生成年 | 82 | + yea = aaa.year # 生成年 |
83 | # yea = random.randint(1933, int(time.strftime("%Y"))) # 生成年 | 83 | # yea = random.randint(1933, int(time.strftime("%Y"))) # 生成年 |
84 | # 生成月 | 84 | # 生成月 |
85 | mon = random.randint(1, 12) | 85 | mon = random.randint(1, 12) |
@@ -24,7 +24,7 @@ def runner_test(suite): | @@ -24,7 +24,7 @@ def runner_test(suite): | ||
24 | ) | 24 | ) |
25 | # runner.run() | 25 | # runner.run() |
26 | # 执行失败重新运行机制 | 26 | # 执行失败重新运行机制 |
27 | - runner.rerun_run(count=3, interval=0.2) | 27 | + runner.rerun_run(count=2, interval=0.2) |
28 | """ | 28 | """ |
29 | 发送钉钉 | 29 | 发送钉钉 |
30 | """ | 30 | """ |
@@ -36,9 +36,9 @@ def runner_test(suite): | @@ -36,9 +36,9 @@ def runner_test(suite): | ||
36 | # isatall=False, # 是否@所有人,默认为False,设为True则会@所有人 | 36 | # isatall=False, # 是否@所有人,默认为False,设为True则会@所有人 |
37 | # except_info=True # 是否发送未通过用例的详细信息,默认为False | 37 | # except_info=True # 是否发送未通过用例的详细信息,默认为False |
38 | # ) | 38 | # ) |
39 | - """ | ||
40 | - 发送邮件 | ||
41 | - """ | 39 | + # """ |
40 | + # 发送邮件 | ||
41 | + # """ | ||
42 | # runner.send_email(host="smtp.qq.com", | 42 | # runner.send_email(host="smtp.qq.com", |
43 | # port=465, | 43 | # port=465, |
44 | # user="shishut@foxmail.com", | 44 | # user="shishut@foxmail.com", |
@@ -45,7 +45,8 @@ class StudentLoginToken: | @@ -45,7 +45,8 @@ class StudentLoginToken: | ||
45 | "way": conf.get("student_user_data", "way"), | 45 | "way": conf.get("student_user_data", "way"), |
46 | "phone": conf.get("student_user_data", "phone"), | 46 | "phone": conf.get("student_user_data", "phone"), |
47 | "code": conf.get("student_user_data", "code"), | 47 | "code": conf.get("student_user_data", "code"), |
48 | - "type": conf.get("student_user_data", "type") | 48 | + "type": conf.get("student_user_data", "type"), |
49 | + "schoolId": conf.get("student_user_data", "schoolId") | ||
49 | } | 50 | } |
50 | response = requests.request(url=login_url, method="post", json=params, headers=headers) | 51 | response = requests.request(url=login_url, method="post", json=params, headers=headers) |
51 | res = response.json() | 52 | res = response.json() |
@@ -98,5 +99,6 @@ class HrLoginToken: | @@ -98,5 +99,6 @@ class HrLoginToken: | ||
98 | 99 | ||
99 | 100 | ||
100 | if __name__ == '__main__': | 101 | if __name__ == '__main__': |
101 | - HrLoginToken.login_token() | 102 | + a = StudentLoginToken.login_token() |
103 | + print(a) | ||
102 | # HrLoginToken.login_token() | 104 | # HrLoginToken.login_token() |
请
注册
或
登录
后发表评论