Commit 1eb4258c8e590436fce646e937fa7997954ef7cc

Authored by biqiao
1 parent 5c055c6c22
Exists in master

fix DB connection bug

.idea/workspace.xml
... ... @@ -3,8 +3,17 @@
3 3 <component name="ChangeListManager">
4 4 <list default="true" id="33187cb8-da74-4b13-8a55-31c4cae60a20" name="Default" comment="">
5 5 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
  6 + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/data_fixture/create_testdata.py" afterPath="$PROJECT_DIR$/data_fixture/create_testdata.py" />
6 7 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/data_fixture/mysql_db.py" afterPath="$PROJECT_DIR$/data_fixture/mysql_db.py" />
7 8 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/report/test_report.html" afterPath="$PROJECT_DIR$/report/test_report.html" />
  9 + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/run_test.py" afterPath="$PROJECT_DIR$/run_test.py" />
  10 + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test_cases/app_record_statistic.py" afterPath="$PROJECT_DIR$/test_cases/app_record_statistic.py" />
  11 + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test_cases/parent_space.py" afterPath="$PROJECT_DIR$/test_cases/parent_space.py" />
  12 + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test_cases/personal_info.py" afterPath="$PROJECT_DIR$/test_cases/personal_info.py" />
  13 + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test_cases/press.py" afterPath="$PROJECT_DIR$/test_cases/press.py" />
  14 + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test_cases/register.py" afterPath="$PROJECT_DIR$/test_cases/register.py" />
  15 + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test_cases/sub_account.py" afterPath="$PROJECT_DIR$/test_cases/sub_account.py" />
  16 + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test_cases/subject_sync.py" afterPath="$PROJECT_DIR$/test_cases/subject_sync.py" />
8 17 </list>
9 18 <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
10 19 <option name="TRACKING_ENABLED" value="true" />
... ... @@ -15,7 +24,7 @@
15 24 </component>
16 25 <component name="CoverageDataManager">
17 26 <SUITE FILE_PATH="coverage/apiTest$debugggggg.coverage" NAME="debugggggg Coverage Results" MODIFIED="1514886595342" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/test_cases" />
18   - <SUITE FILE_PATH="coverage/apiTest$run_test.coverage" NAME="run_test Coverage Results" MODIFIED="1515151494257" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
  27 + <SUITE FILE_PATH="coverage/apiTest$run_test.coverage" NAME="run_test Coverage Results" MODIFIED="1515999141100" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
19 28 </component>
20 29 <component name="DatabaseView">
21 30 <option name="SHOW_INTERMEDIATE" value="true" />
... ... @@ -30,17 +39,17 @@
30 39 </component>
31 40 <component name="FileEditorManager">
32 41 <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
33   - <file leaf-file-name="mysql_db.py" pinned="false" current-in-tab="true">
  42 + <file leaf-file-name="mysql_db.py" pinned="false" current-in-tab="false">
34 43 <entry file="file://$PROJECT_DIR$/data_fixture/mysql_db.py">
35 44 <provider selected="true" editor-type-id="text-editor">
36   - <state relative-caret-position="358">
37   - <caret line="38" column="48" lean-forward="true" selection-start-line="38" selection-start-column="48" selection-end-line="38" selection-end-column="48" />
  45 + <state relative-caret-position="388">
  46 + <caret line="44" column="77" lean-forward="true" selection-start-line="44" selection-start-column="52" selection-end-line="44" selection-end-column="77" />
38 47 <folding>
39 48 <element signature="e#47#66#0" expanded="true" />
40   - <marker date="1515742817000" expanded="true" signature="1735:1755" ph="select * fro... " />
41   - <marker date="1515742817000" expanded="true" signature="1735:1757" ph="select * fro... missing_value" />
42   - <marker date="1515742817000" expanded="true" signature="1735:1781" ph="select count... missing_value" />
43   - <marker date="1515742817000" expanded="true" signature="1735:1782" ph="select count... missing_value" />
  49 + <marker date="1516000191000" expanded="true" signature="1736:1756" ph="select * fro... " />
  50 + <marker date="1516000191000" expanded="true" signature="1736:1758" ph="select * fro... missing_value" />
  51 + <marker date="1516000191000" expanded="true" signature="1736:1782" ph="select count... missing_value" />
  52 + <marker date="1516000191000" expanded="true" signature="1736:1783" ph="select count... missing_value" />
44 53 </folding>
45 54 </state>
46 55 </provider>
... ... @@ -49,30 +58,18 @@
49 58 <file leaf-file-name="config_data.py" pinned="false" current-in-tab="false">
50 59 <entry file="file://$PROJECT_DIR$/data_fixture/config_data.py">
51 60 <provider selected="true" editor-type-id="text-editor">
52   - <state relative-caret-position="68">
53   - <caret line="4" column="22" lean-forward="false" selection-start-line="4" selection-start-column="9" selection-end-line="4" selection-end-column="22" />
  61 + <state relative-caret-position="225">
  62 + <caret line="40" column="30" lean-forward="true" selection-start-line="40" selection-start-column="30" selection-end-line="40" selection-end-column="30" />
54 63 <folding />
55 64 </state>
56 65 </provider>
57 66 </entry>
58 67 </file>
59   - <file leaf-file-name="register.py" pinned="false" current-in-tab="false">
60   - <entry file="file://$PROJECT_DIR$/test_cases/register.py">
61   - <provider selected="true" editor-type-id="text-editor">
62   - <state relative-caret-position="459">
63   - <caret line="27" column="55" lean-forward="true" selection-start-line="27" selection-start-column="55" selection-end-line="27" selection-end-column="55" />
64   - <folding>
65   - <element signature="e#47#62#0" expanded="true" />
66   - </folding>
67   - </state>
68   - </provider>
69   - </entry>
70   - </file>
71   - <file leaf-file-name="app_record_statistic.py" pinned="false" current-in-tab="false">
72   - <entry file="file://$PROJECT_DIR$/test_cases/app_record_statistic.py">
  68 + <file leaf-file-name="run_test.py" pinned="false" current-in-tab="true">
  69 + <entry file="file://$PROJECT_DIR$/run_test.py">
73 70 <provider selected="true" editor-type-id="text-editor">
74   - <state relative-caret-position="306">
75   - <caret line="18" column="53" lean-forward="true" selection-start-line="18" selection-start-column="53" selection-end-line="18" selection-end-column="53" />
  71 + <state relative-caret-position="493">
  72 + <caret line="29" column="25" lean-forward="true" selection-start-line="29" selection-start-column="25" selection-end-line="29" selection-end-column="25" />
76 73 <folding>
77 74 <element signature="e#47#62#0" expanded="true" />
78 75 </folding>
... ... @@ -80,94 +77,70 @@
80 77 </provider>
81 78 </entry>
82 79 </file>
83   - <file leaf-file-name="run_test.py" pinned="false" current-in-tab="false">
84   - <entry file="file://$PROJECT_DIR$/run_test.py">
  80 + <file leaf-file-name="create_testdata.py" pinned="false" current-in-tab="false">
  81 + <entry file="file://$PROJECT_DIR$/data_fixture/create_testdata.py">
85 82 <provider selected="true" editor-type-id="text-editor">
86   - <state relative-caret-position="408">
87   - <caret line="24" column="37" lean-forward="false" selection-start-line="24" selection-start-column="37" selection-end-line="24" selection-end-column="37" />
  83 + <state relative-caret-position="382">
  84 + <caret line="32" column="21" lean-forward="true" selection-start-line="32" selection-start-column="21" selection-end-line="32" selection-end-column="21" />
88 85 <folding>
89   - <element signature="e#47#62#0" expanded="true" />
  86 + <element signature="e#47#83#0" expanded="true" />
  87 + <marker date="1516001168000" expanded="true" signature="1887:1954" ph="select * fro... ozing_customermachine" />
  88 + <marker date="1516001168000" expanded="true" signature="1887:1955" ph="select * fro... ozing_customermachine" />
  89 + <marker date="1516001168000" expanded="true" signature="1887:1957" ph="select * fro... ozing_customermachine" />
  90 + <marker date="1516001168000" expanded="true" signature="1887:1958" ph="select * fro... ozing_customermachine" />
  91 + <marker date="1516001168000" expanded="true" signature="1887:1984" ph="select * fro... ozing_customermachine" />
  92 + <marker date="1516001168000" expanded="true" signature="2015:2074" ph="SELECT * FRO... ozing_machine" />
  93 + <marker date="1516001168000" expanded="true" signature="2015:2075" ph="SELECT * FRO... ozing_machine" />
  94 + <marker date="1516001168000" expanded="true" signature="2015:2078" ph="SELECT * FRO... ozing_machine" />
  95 + <marker date="1516001168000" expanded="true" signature="2015:2079" ph="SELECT * FRO... ozing_machine" />
  96 + <marker date="1516001168000" expanded="true" signature="2015:2105" ph="SELECT * FRO... ozing_machine" />
  97 + <marker date="1516001168000" expanded="true" signature="2218:2680" ph="insert into acornuser.ozing_customermachine... " />
  98 + <marker date="1516001168000" expanded="true" signature="3394:3463" ph="SELECT * FRO... ozing_samplemachine" />
  99 + <marker date="1516001168000" expanded="true" signature="3515:3579" ph="SELECT * FRO... ozing_machine" />
  100 + <marker date="1516001168000" expanded="true" signature="5201:5272" ph="select * fro... ozing_customermachine" />
  101 + <marker date="1516001168000" expanded="true" signature="5617:5681" ph="SELECT * FRO... ozing_machine" />
  102 + <marker date="1516001168000" expanded="true" signature="5742:5822" ph="SELECT * FRO... ozing_machine" />
  103 + <marker date="1516001168000" expanded="true" signature="6688:6759" ph="select * fro... ozing_customermachine" />
  104 + <marker date="1516001168000" expanded="true" signature="7044:7107" ph="select * fro... ozing_machine" />
  105 + <marker date="1516001168000" expanded="true" signature="8181:8246" ph="update acorn... " />
  106 + <marker date="1516001168000" expanded="true" signature="8181:8270" ph="update acorn... " />
  107 + <marker date="1516001168000" expanded="true" signature="8394:8475" ph="select * fro... child_user" />
  108 + <marker date="1516001168000" expanded="true" signature="8541:8622" ph="select * fro... child_user" />
  109 + <marker date="1516001168000" expanded="true" signature="8541:8669" ph="select * fro... child_user" />
  110 + <marker date="1516001168000" expanded="true" signature="8541:8671" ph="select * fro... child_user" />
  111 + <marker date="1516001168000" expanded="true" signature="9559:9644" ph="select * fro... acorn_user_status" />
  112 + <marker date="1516001168000" expanded="true" signature="9786:9886" ph="select * fro... acorn_user_status" />
  113 + <marker date="1516001168000" expanded="true" signature="10624:10724" ph="select * fro... acorn_user_status" />
  114 + <marker date="1516001168000" expanded="true" signature="11768:11826" ph="select * fro... acorn_user_extra" />
  115 + <marker date="1516001168000" expanded="true" signature="11863:11949" ph="select * fro... acorn_user_extra" />
  116 + <marker date="1516001168000" expanded="true" signature="12380:12449" ph="select * fro... subAccount_user_extra" />
  117 + <marker date="1516001168000" expanded="true" signature="12380:12450" ph="select * fro... subAccount_user_extra" />
  118 + <marker date="1516001168000" expanded="true" signature="12380:12454" ph="select * fro... subAccount_user_extra" />
  119 + <marker date="1516001168000" expanded="true" signature="12489:12558" ph="select * fro... subAccount_user_extra" />
  120 + <marker date="1516001168000" expanded="true" signature="12489:12588" ph="select * fro... subAccount_user_extra" />
  121 + <marker date="1516001168000" expanded="true" signature="12489:12604" ph="select * fro... subAccount_user_extra" />
  122 + <marker date="1516001168000" expanded="true" signature="13814:13914" ph="select * fro... ozing_student" />
  123 + <marker date="1516001168000" expanded="true" signature="14016:14102" ph="update acorn... " />
  124 + <marker date="1516001168000" expanded="true" signature="14016:14104" ph="update acorn... " />
  125 + <marker date="1516001168000" expanded="true" signature="14192:14300" ph="select * fro... ozing_student" />
  126 + <marker date="1516001168000" expanded="true" signature="16432:16472" ph="select max(i... acorn_user" />
  127 + <marker date="1516001168000" expanded="true" signature="16432:16474" ph="select max(i... acorn_user" />
  128 + <marker date="1516001168000" expanded="true" signature="17187:17262" ph="select passw... parents_space_pass" />
  129 + <marker date="1516001168000" expanded="true" signature="18218:18270" ph="update analy... " />
  130 + <marker date="1516001168000" expanded="true" signature="18218:18287" ph="update analy... " />
  131 + <marker date="1516001168000" expanded="true" signature="18218:18315" ph="update analy... " />
  132 + <marker date="1516001168000" expanded="true" signature="18218:18316" ph="update analy... " />
90 133 </folding>
91 134 </state>
92 135 </provider>
93 136 </entry>
94 137 </file>
95   - <file leaf-file-name="debugggggg.py" pinned="false" current-in-tab="false">
96   - <entry file="file://$PROJECT_DIR$/test_cases/debugggggg.py">
97   - <provider selected="true" editor-type-id="text-editor">
98   - <state relative-caret-position="34">
99   - <caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
100   - <folding />
101   - </state>
102   - </provider>
103   - </entry>
104   - </file>
105 138 <file leaf-file-name="subject_sync.py" pinned="false" current-in-tab="false">
106 139 <entry file="file://$PROJECT_DIR$/test_cases/subject_sync.py">
107 140 <provider selected="true" editor-type-id="text-editor">
108   - <state relative-caret-position="204">
109   - <caret line="12" column="0" lean-forward="true" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
110   - <folding>
111   - <element signature="e#47#62#0" expanded="true" />
112   - </folding>
113   - </state>
114   - </provider>
115   - </entry>
116   - </file>
117   - <file leaf-file-name="create_testdata.py" pinned="false" current-in-tab="false">
118   - <entry file="file://$PROJECT_DIR$/data_fixture/create_testdata.py">
119   - <provider selected="true" editor-type-id="text-editor">
120   - <state relative-caret-position="666">
121   - <caret line="356" column="79" lean-forward="false" selection-start-line="356" selection-start-column="67" selection-end-line="356" selection-end-column="79" />
122   - <folding>
123   - <element signature="e#47#83#0" expanded="true" />
124   - <marker date="1515219431000" expanded="true" signature="1421:1488" ph="select * fro... ozing_customermachine" />
125   - <marker date="1515219431000" expanded="true" signature="1421:1489" ph="select * fro... ozing_customermachine" />
126   - <marker date="1515219431000" expanded="true" signature="1421:1491" ph="select * fro... ozing_customermachine" />
127   - <marker date="1515219431000" expanded="true" signature="1421:1492" ph="select * fro... ozing_customermachine" />
128   - <marker date="1515219431000" expanded="true" signature="1421:1518" ph="select * fro... ozing_customermachine" />
129   - <marker date="1515219431000" expanded="true" signature="1549:1608" ph="SELECT * FRO... ozing_machine" />
130   - <marker date="1515219431000" expanded="true" signature="1549:1609" ph="SELECT * FRO... ozing_machine" />
131   - <marker date="1515219431000" expanded="true" signature="1549:1612" ph="SELECT * FRO... ozing_machine" />
132   - <marker date="1515219431000" expanded="true" signature="1549:1613" ph="SELECT * FRO... ozing_machine" />
133   - <marker date="1515219431000" expanded="true" signature="1549:1639" ph="SELECT * FRO... ozing_machine" />
134   - <marker date="1515219431000" expanded="true" signature="1752:2214" ph="insert into acornuser.ozing_customermachine... " />
135   - <marker date="1515219431000" expanded="true" signature="2928:2997" ph="SELECT * FRO... ozing_samplemachine" />
136   - <marker date="1515219431000" expanded="true" signature="3049:3113" ph="SELECT * FRO... ozing_machine" />
137   - <marker date="1515219431000" expanded="true" signature="4735:4806" ph="select * fro... ozing_customermachine" />
138   - <marker date="1515219431000" expanded="true" signature="5151:5215" ph="SELECT * FRO... ozing_machine" />
139   - <marker date="1515219431000" expanded="true" signature="5276:5356" ph="SELECT * FRO... ozing_machine" />
140   - <marker date="1515219431000" expanded="true" signature="6222:6293" ph="select * fro... ozing_customermachine" />
141   - <marker date="1515219431000" expanded="true" signature="6578:6641" ph="select * fro... ozing_machine" />
142   - <marker date="1515219431000" expanded="true" signature="7715:7780" ph="update acorn... " />
143   - <marker date="1515219431000" expanded="true" signature="7715:7804" ph="update acorn... " />
144   - <marker date="1515219431000" expanded="true" signature="7928:8009" ph="select * fro... child_user" />
145   - <marker date="1515219431000" expanded="true" signature="8075:8156" ph="select * fro... child_user" />
146   - <marker date="1515219431000" expanded="true" signature="8075:8203" ph="select * fro... child_user" />
147   - <marker date="1515219431000" expanded="true" signature="8075:8205" ph="select * fro... child_user" />
148   - <marker date="1515219431000" expanded="true" signature="9093:9178" ph="select * fro... acorn_user_status" />
149   - <marker date="1515219431000" expanded="true" signature="9320:9420" ph="select * fro... acorn_user_status" />
150   - <marker date="1515219431000" expanded="true" signature="10158:10258" ph="select * fro... acorn_user_status" />
151   - <marker date="1515219431000" expanded="true" signature="11302:11360" ph="select * fro... acorn_user_extra" />
152   - <marker date="1515219431000" expanded="true" signature="11397:11483" ph="select * fro... acorn_user_extra" />
153   - <marker date="1515219431000" expanded="true" signature="11914:11983" ph="select * fro... subAccount_user_extra" />
154   - <marker date="1515219431000" expanded="true" signature="11914:11984" ph="select * fro... subAccount_user_extra" />
155   - <marker date="1515219431000" expanded="true" signature="11914:11988" ph="select * fro... subAccount_user_extra" />
156   - <marker date="1515219431000" expanded="true" signature="12023:12092" ph="select * fro... subAccount_user_extra" />
157   - <marker date="1515219431000" expanded="true" signature="12023:12122" ph="select * fro... subAccount_user_extra" />
158   - <marker date="1515219431000" expanded="true" signature="12023:12138" ph="select * fro... subAccount_user_extra" />
159   - <marker date="1515219431000" expanded="true" signature="13348:13448" ph="select * fro... ozing_student" />
160   - <marker date="1515219431000" expanded="true" signature="13550:13636" ph="update acorn... " />
161   - <marker date="1515219431000" expanded="true" signature="13550:13638" ph="update acorn... " />
162   - <marker date="1515219431000" expanded="true" signature="13726:13834" ph="select * fro... ozing_student" />
163   - <marker date="1515219431000" expanded="true" signature="15966:16006" ph="select max(i... acorn_user" />
164   - <marker date="1515219431000" expanded="true" signature="15966:16008" ph="select max(i... acorn_user" />
165   - <marker date="1515219431000" expanded="true" signature="16721:16796" ph="select passw... parents_space_pass" />
166   - <marker date="1515219431000" expanded="true" signature="17752:17804" ph="update analy... " />
167   - <marker date="1515219431000" expanded="true" signature="17752:17821" ph="update analy... " />
168   - <marker date="1515219431000" expanded="true" signature="17752:17849" ph="update analy... " />
169   - <marker date="1515219431000" expanded="true" signature="17752:17850" ph="update analy... " />
170   - </folding>
  141 + <state relative-caret-position="1921">
  142 + <caret line="118" column="54" lean-forward="true" selection-start-line="118" selection-start-column="54" selection-end-line="118" selection-end-column="54" />
  143 + <folding />
171 144 </state>
172 145 </provider>
173 146 </entry>
... ... @@ -183,9 +156,6 @@
183 156 </component>
184 157 <component name="FindInProjectRecents">
185 158 <findStrings>
186   - <find>_generate_report</find>
187   - <find>Data</find>
188   - <find>test_unbindCard_success</find>
189 159 <find>login</find>
190 160 <find>DEVICE_NUMBER_EDIT_PHONE</find>
191 161 <find>pre_SetUpElecCard</find>
... ... @@ -212,7 +182,10 @@
212 182 <find>SUB_ACC_</find>
213 183 <find>test_getAppRecordOneday_success</find>
214 184 <find>print</find>
  185 + <find>SetUpElecCard</find>
  186 + <find>test_ConsolidationExercise_success</find>
215 187 <find>get_parentSpace_password</find>
  188 + <find>db_test</find>
216 189 </findStrings>
217 190 <replaceStrings>
218 191 <replace>app_pid</replace>
... ... @@ -253,21 +226,21 @@
253 226 <option value="$PROJECT_DIR$/data_fixture/test_verify.py" />
254 227 <option value="$PROJECT_DIR$/test_cases/region_grade_school.py" />
255 228 <option value="$PROJECT_DIR$/test_cases/eleccard_setUp.py" />
256   - <option value="$PROJECT_DIR$/test_cases/press.py" />
257   - <option value="$PROJECT_DIR$/test_cases/sub_account.py" />
258   - <option value="$PROJECT_DIR$/test_cases/personal_info.py" />
259 229 <option value="$PROJECT_DIR$/data_fixture/config_data.py" />
260   - <option value="$PROJECT_DIR$/test_cases/parent_space.py" />
261 230 <option value="$PROJECT_DIR$/test_cases/xueketongbu.py" />
262   - <option value="$PROJECT_DIR$/test_cases/app_record_statistic.py" />
263   - <option value="$PROJECT_DIR$/data_fixture/create_testdata.py" />
264 231 <option value="$PROJECT_DIR$/test_cases/debugggggg.py" />
265 232 <option value="$PROJECT_DIR$/test_cases/__init__.py" />
266 233 <option value="$PROJECT_DIR$/data_fixture/__init__.py" />
  234 + <option value="$PROJECT_DIR$/data_fixture/mysql_db.py" />
  235 + <option value="$PROJECT_DIR$/test_cases/register.py" />
  236 + <option value="$PROJECT_DIR$/test_cases/parent_space.py" />
  237 + <option value="$PROJECT_DIR$/test_cases/press.py" />
  238 + <option value="$PROJECT_DIR$/test_cases/sub_account.py" />
  239 + <option value="$PROJECT_DIR$/test_cases/app_record_statistic.py" />
  240 + <option value="$PROJECT_DIR$/test_cases/personal_info.py" />
  241 + <option value="$PROJECT_DIR$/data_fixture/create_testdata.py" />
267 242 <option value="$PROJECT_DIR$/test_cases/subject_sync.py" />
268 243 <option value="$PROJECT_DIR$/run_test.py" />
269   - <option value="$PROJECT_DIR$/test_cases/register.py" />
270   - <option value="$PROJECT_DIR$/data_fixture/mysql_db.py" />
271 244 </list>
272 245 </option>
273 246 </component>
... ... @@ -277,9 +250,8 @@
277 250 <detection-done>true</detection-done>
278 251 <sorting>DEFINITION_ORDER</sorting>
279 252 </component>
280   - <component name="ProjectFrameBounds" extendedState="6">
281   - <option name="x" value="23" />
282   - <option name="y" value="85" />
  253 + <component name="ProjectFrameBounds">
  254 + <option name="y" value="23" />
283 255 <option name="width" value="1920" />
284 256 <option name="height" value="977" />
285 257 </component>
... ... @@ -299,7 +271,7 @@
299 271 <foldersAlwaysOnTop value="true" />
300 272 </navigator>
301 273 <panes>
302   - <pane id="Scope" />
  274 + <pane id="Scratches" />
303 275 <pane id="ProjectPane">
304 276 <subPane>
305 277 <expand>
... ... @@ -331,7 +303,7 @@
331 303 <select />
332 304 </subPane>
333 305 </pane>
334   - <pane id="Scratches" />
  306 + <pane id="Scope" />
335 307 </panes>
336 308 </component>
337 309 <component name="PropertiesComponent">
... ... @@ -434,21 +406,21 @@
434 406 </todo-panel>
435 407 </component>
436 408 <component name="ToolWindowManager">
437   - <frame x="-9" y="23" width="1920" height="977" extended-state="6" />
  409 + <frame x="0" y="23" width="1920" height="977" extended-state="6" />
438 410 <editor active="true" />
439 411 <layout>
440 412 <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32993197" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
441 413 <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
442 414 <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
443   - <window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24829932" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
444   - <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2857143" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
  415 + <window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.15419501" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
  416 + <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.2857143" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
445 417 <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32993197" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
446   - <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.17891374" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
  418 + <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.18051118" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
447 419 <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32960597" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
448 420 <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
449 421 <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
450 422 <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
451   - <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4580499" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
  423 + <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24829932" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
452 424 <window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.2284345" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
453 425 <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
454 426 <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
... ... @@ -490,7 +462,7 @@
490 462 <breakpoints>
491 463 <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
492 464 <url>file://$PROJECT_DIR$/test_cases/sub_account.py</url>
493   - <line>56</line>
  465 + <line>55</line>
494 466 <option name="timeStamp" value="82" />
495 467 </line-breakpoint>
496 468 <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
... ... @@ -499,44 +471,41 @@
499 471 <option name="timeStamp" value="102" />
500 472 </line-breakpoint>
501 473 <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
502   - <url>file://$PROJECT_DIR$/test_cases/personal_info.py</url>
503   - <line>253</line>
504   - <option name="timeStamp" value="113" />
505   - </line-breakpoint>
506   - <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
507 474 <url>file://$PROJECT_DIR$/test_cases/debugggggg.py</url>
508 475 <line>18</line>
509 476 <option name="timeStamp" value="140" />
510 477 </line-breakpoint>
511 478 <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
512 479 <url>file://$PROJECT_DIR$/test_cases/app_record_statistic.py</url>
513   - <line>181</line>
  480 + <line>180</line>
514 481 <option name="timeStamp" value="188" />
515 482 </line-breakpoint>
  483 + <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
  484 + <url>file://$PROJECT_DIR$/test_cases/parent_space.py</url>
  485 + <line>46</line>
  486 + <option name="timeStamp" value="189" />
  487 + </line-breakpoint>
  488 + <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
  489 + <url>file://$PROJECT_DIR$/test_cases/register.py</url>
  490 + <line>3</line>
  491 + <option name="timeStamp" value="192" />
  492 + </line-breakpoint>
516 493 </breakpoints>
517 494 <breakpoints-dialog>
518 495 <breakpoints-dialog />
519 496 </breakpoints-dialog>
520   - <option name="time" value="189" />
  497 + <default-breakpoints>
  498 + <breakpoint type="python-exception">
  499 + <properties notifyOnTerminate="true" exception="BaseException">
  500 + <option name="notifyOnTerminate" value="true" />
  501 + </properties>
  502 + </breakpoint>
  503 + </default-breakpoints>
  504 + <option name="time" value="193" />
521 505 </breakpoint-manager>
522 506 <watches-manager />
523 507 </component>
524 508 <component name="editorHistoryManager">
525   - <entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/suite.py">
526   - <provider selected="true" editor-type-id="text-editor">
527   - <state relative-caret-position="1360">
528   - <caret line="83" column="0" lean-forward="false" selection-start-line="83" selection-start-column="0" selection-end-line="83" selection-end-column="0" />
529   - <folding />
530   - </state>
531   - </provider>
532   - </entry>
533   - <entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/codecs.py">
534   - <provider selected="true" editor-type-id="text-editor">
535   - <state relative-caret-position="5627">
536   - <caret line="331" column="0" lean-forward="false" selection-start-line="331" selection-start-column="0" selection-end-line="331" selection-end-column="0" />
537   - </state>
538   - </provider>
539   - </entry>
540 509 <entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/HtmlTestRunner/runner.py" />
541 510 <entry file="file://$PROJECT_DIR$/config.ini" />
542 511 <entry file="file://$PROJECT_DIR$/data_fixture/mysql_db.py">
... ... @@ -545,10 +514,10 @@
545 514 <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
546 515 <folding>
547 516 <element signature="e#47#66#0" expanded="true" />
548   - <marker date="1515742817000" expanded="true" signature="1735:1755" ph="select * fro... " />
549   - <marker date="1515742817000" expanded="true" signature="1735:1757" ph="select * fro... missing_value" />
550   - <marker date="1515742817000" expanded="true" signature="1735:1781" ph="select count... missing_value" />
551   - <marker date="1515742817000" expanded="true" signature="1735:1782" ph="select count... missing_value" />
  517 + <marker date="1516000191000" expanded="true" signature="1736:1756" ph="select * fro... " />
  518 + <marker date="1516000191000" expanded="true" signature="1736:1758" ph="select * fro... missing_value" />
  519 + <marker date="1516000191000" expanded="true" signature="1736:1782" ph="select count... missing_value" />
  520 + <marker date="1516000191000" expanded="true" signature="1736:1783" ph="select count... missing_value" />
552 521 </folding>
553 522 </state>
554 523 </provider>
... ... @@ -572,7 +541,6 @@
572 541 <provider selected="true" editor-type-id="text-editor">
573 542 <state relative-caret-position="816">
574 543 <caret line="51" column="23" lean-forward="false" selection-start-line="51" selection-start-column="23" selection-end-line="51" selection-end-column="23" />
575   - <folding />
576 544 </state>
577 545 </provider>
578 546 </entry>
... ... @@ -583,10 +551,10 @@
583 551 <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
584 552 <folding>
585 553 <element signature="e#47#66#0" expanded="true" />
586   - <marker date="1515742817000" expanded="true" signature="1735:1755" ph="select * fro... " />
587   - <marker date="1515742817000" expanded="true" signature="1735:1757" ph="select * fro... missing_value" />
588   - <marker date="1515742817000" expanded="true" signature="1735:1781" ph="select count... missing_value" />
589   - <marker date="1515742817000" expanded="true" signature="1735:1782" ph="select count... missing_value" />
  554 + <marker date="1516000191000" expanded="true" signature="1736:1756" ph="select * fro... " />
  555 + <marker date="1516000191000" expanded="true" signature="1736:1758" ph="select * fro... missing_value" />
  556 + <marker date="1516000191000" expanded="true" signature="1736:1782" ph="select count... missing_value" />
  557 + <marker date="1516000191000" expanded="true" signature="1736:1783" ph="select count... missing_value" />
590 558 </folding>
591 559 </state>
592 560 </provider>
... ... @@ -610,7 +578,6 @@
610 578 <provider selected="true" editor-type-id="text-editor">
611 579 <state relative-caret-position="867">
612 580 <caret line="51" column="23" lean-forward="true" selection-start-line="51" selection-start-column="23" selection-end-line="51" selection-end-column="23" />
613   - <folding />
614 581 </state>
615 582 </provider>
616 583 </entry>
... ... @@ -663,14 +630,6 @@
663 630 </state>
664 631 </provider>
665 632 </entry>
666   - <entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/suite.py">
667   - <provider selected="true" editor-type-id="text-editor">
668   - <state relative-caret-position="149">
669   - <caret line="83" column="0" lean-forward="false" selection-start-line="83" selection-start-column="0" selection-end-line="83" selection-end-column="0" />
670   - <folding />
671   - </state>
672   - </provider>
673   - </entry>
674 633 <entry file="file://$PROJECT_DIR$/test_suites/test_elecCard.py">
675 634 <provider selected="true" editor-type-id="text-editor">
676 635 <state relative-caret-position="0">
... ... @@ -683,7 +642,6 @@
683 642 <provider selected="true" editor-type-id="text-editor">
684 643 <state relative-caret-position="136">
685 644 <caret line="8" column="44" lean-forward="true" selection-start-line="8" selection-start-column="44" selection-end-line="8" selection-end-column="44" />
686   - <folding />
687 645 </state>
688 646 </provider>
689 647 </entry>
... ... @@ -698,9 +656,6 @@
698 656 <provider selected="true" editor-type-id="text-editor">
699 657 <state relative-caret-position="340">
700 658 <caret line="20" column="81" lean-forward="true" selection-start-line="8" selection-start-column="0" selection-end-line="20" selection-end-column="81" />
701   - <folding>
702   - <element signature="e#47#62#0" expanded="false" />
703   - </folding>
704 659 </state>
705 660 </provider>
706 661 </entry>
... ... @@ -713,209 +668,210 @@
713 668 </state>
714 669 </provider>
715 670 </entry>
716   - <entry file="file://$PROJECT_DIR$/test_cases/eleccard_setUp.py">
  671 + <entry file="file://$PROJECT_DIR$/report/test_report.html">
717 672 <provider selected="true" editor-type-id="text-editor">
718   - <state relative-caret-position="209">
719   - <caret line="102" column="26" lean-forward="true" selection-start-line="102" selection-start-column="26" selection-end-line="102" selection-end-column="26" />
720   - <folding />
  673 + <state relative-caret-position="0">
  674 + <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
721 675 </state>
722 676 </provider>
723 677 </entry>
724   - <entry file="file://$APPLICATION_HOME_DIR$/helpers/pydev/pydevd.py">
  678 + <entry file="file://$PROJECT_DIR$/test_cases/debugggggg.py">
725 679 <provider selected="true" editor-type-id="text-editor">
726   - <state relative-caret-position="169">
727   - <caret line="1595" column="0" lean-forward="false" selection-start-line="1595" selection-start-column="0" selection-end-line="1595" selection-end-column="0" />
  680 + <state relative-caret-position="34">
  681 + <caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
728 682 <folding />
729 683 </state>
730 684 </provider>
731 685 </entry>
732   - <entry file="file://$PROJECT_DIR$/test_cases/press.py">
  686 + <entry file="file://$PROJECT_DIR$/test_cases/__init__.py" />
  687 + <entry file="file://$PROJECT_DIR$/data_fixture/__init__.py" />
  688 + <entry file="file://$PROJECT_DIR$/test_cases/eleccard_setUp.py">
733 689 <provider selected="true" editor-type-id="text-editor">
734   - <state relative-caret-position="0">
735   - <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="11" selection-end-column="0" />
  690 + <state relative-caret-position="187">
  691 + <caret line="15" column="23" lean-forward="true" selection-start-line="15" selection-start-column="23" selection-end-line="15" selection-end-column="23" />
736 692 <folding />
737 693 </state>
738 694 </provider>
739 695 </entry>
740   - <entry file="file://$PROJECT_DIR$/HTMLTestRunner.py">
  696 + <entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py">
741 697 <provider selected="true" editor-type-id="text-editor">
742   - <state relative-caret-position="165">
743   - <caret line="643" column="0" lean-forward="false" selection-start-line="643" selection-start-column="0" selection-end-line="643" selection-end-column="0" />
744   - <folding>
745   - <element signature="e#8852#10678#0" expanded="false" />
746   - </folding>
  698 + <state relative-caret-position="150">
  699 + <caret line="830" column="0" lean-forward="false" selection-start-line="830" selection-start-column="0" selection-end-line="830" selection-end-column="0" />
  700 + <folding />
747 701 </state>
748 702 </provider>
749 703 </entry>
750   - <entry file="file://$PROJECT_DIR$/test_cases/personal_info.py">
  704 + <entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/suite.py">
751 705 <provider selected="true" editor-type-id="text-editor">
752   - <state relative-caret-position="415">
753   - <caret line="251" column="26" lean-forward="false" selection-start-line="251" selection-start-column="26" selection-end-line="251" selection-end-column="26" />
754   - <folding>
755   - <element signature="e#47#62#0" expanded="true" />
756   - </folding>
  706 + <state relative-caret-position="142">
  707 + <caret line="83" column="0" lean-forward="false" selection-start-line="83" selection-start-column="0" selection-end-line="83" selection-end-column="0" />
  708 + <folding />
757 709 </state>
758 710 </provider>
759 711 </entry>
760   - <entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py">
  712 + <entry file="file://$APPLICATION_HOME_DIR$/helpers/pydev/_pydev_imps/_pydev_execfile.py">
761 713 <provider selected="true" editor-type-id="text-editor">
762   - <state relative-caret-position="176">
763   - <caret line="1334" column="0" lean-forward="false" selection-start-line="1334" selection-start-column="0" selection-end-line="1334" selection-end-column="0" />
  714 + <state relative-caret-position="289">
  715 + <caret line="17" column="0" lean-forward="false" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" />
764 716 <folding />
765 717 </state>
766 718 </provider>
767 719 </entry>
768   - <entry file="file://$PROJECT_DIR$/test_cases/parent_space.py">
  720 + <entry file="file://$APPLICATION_HOME_DIR$/helpers/pydev/pydevd.py">
769 721 <provider selected="true" editor-type-id="text-editor">
770   - <state relative-caret-position="713">
771   - <caret line="105" column="0" lean-forward="false" selection-start-line="105" selection-start-column="0" selection-end-line="105" selection-end-column="0" />
772   - <folding>
773   - <element signature="e#47#62#0" expanded="true" />
774   - <marker date="1514955274000" expanded="true" signature="2800:2884" ph="SELECT custo... ozing_customermachine" />
775   - </folding>
  722 + <state relative-caret-position="224">
  723 + <caret line="1595" column="0" lean-forward="false" selection-start-line="1595" selection-start-column="0" selection-end-line="1595" selection-end-column="0" />
  724 + <folding />
776 725 </state>
777 726 </provider>
778 727 </entry>
779   - <entry file="file://$PROJECT_DIR$/test_cases/sub_account.py">
  728 + <entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/case.py">
780 729 <provider selected="true" editor-type-id="text-editor">
781   - <state relative-caret-position="423">
782   - <caret line="51" column="41" lean-forward="true" selection-start-line="51" selection-start-column="41" selection-end-line="51" selection-end-column="41" />
783   - <folding>
784   - <element signature="e#47#62#0" expanded="true" />
785   - </folding>
  730 + <state relative-caret-position="-44">
  731 + <caret line="611" column="51" lean-forward="true" selection-start-line="611" selection-start-column="51" selection-end-line="611" selection-end-column="51" />
  732 + <folding />
786 733 </state>
787 734 </provider>
788 735 </entry>
789   - <entry file="file://$PROJECT_DIR$/report/test_report.html">
  736 + <entry file="file://$PROJECT_DIR$/test_cases/register.py">
790 737 <provider selected="true" editor-type-id="text-editor">
791   - <state relative-caret-position="0">
792   - <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
793   - <folding />
  738 + <state relative-caret-position="160">
  739 + <caret line="210" column="34" lean-forward="true" selection-start-line="210" selection-start-column="34" selection-end-line="210" selection-end-column="34" />
  740 + <folding>
  741 + <element signature="e#47#62#0" expanded="true" />
  742 + </folding>
794 743 </state>
795 744 </provider>
796 745 </entry>
797   - <entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/case.py">
  746 + <entry file="file://$PROJECT_DIR$/test_cases/press.py">
798 747 <provider selected="true" editor-type-id="text-editor">
799   - <state relative-caret-position="359">
800   - <caret line="600" column="0" lean-forward="false" selection-start-line="600" selection-start-column="0" selection-end-line="600" selection-end-column="0" />
  748 + <state relative-caret-position="312">
  749 + <caret line="80" column="38" lean-forward="true" selection-start-line="80" selection-start-column="38" selection-end-line="80" selection-end-column="38" />
801 750 <folding />
802 751 </state>
803 752 </provider>
804 753 </entry>
805   - <entry file="file://$PROJECT_DIR$/test_cases/debugggggg.py">
  754 + <entry file="file://$PROJECT_DIR$/test_cases/sub_account.py">
806 755 <provider selected="true" editor-type-id="text-editor">
807   - <state relative-caret-position="34">
808   - <caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
809   - <folding />
  756 + <state relative-caret-position="415">
  757 + <caret line="110" column="49" lean-forward="false" selection-start-line="110" selection-start-column="49" selection-end-line="110" selection-end-column="49" />
  758 + <folding>
  759 + <element signature="e#47#62#0" expanded="true" />
  760 + </folding>
810 761 </state>
811 762 </provider>
812 763 </entry>
813   - <entry file="file://$PROJECT_DIR$/test_cases/__init__.py">
  764 + <entry file="file://$PROJECT_DIR$/report/test_report copy.html">
814 765 <provider selected="true" editor-type-id="text-editor">
815   - <state relative-caret-position="0">
816   - <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
  766 + <state relative-caret-position="160">
  767 + <caret line="998" column="8" lean-forward="true" selection-start-line="998" selection-start-column="8" selection-end-line="998" selection-end-column="8" />
817 768 <folding />
818 769 </state>
819 770 </provider>
820 771 </entry>
821   - <entry file="file://$PROJECT_DIR$/data_fixture/__init__.py">
  772 + <entry file="file://$PROJECT_DIR$/data_fixture/mysql_db.py">
822 773 <provider selected="true" editor-type-id="text-editor">
823   - <state relative-caret-position="0">
824   - <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
825   - <folding />
  774 + <state relative-caret-position="388">
  775 + <caret line="44" column="77" lean-forward="true" selection-start-line="44" selection-start-column="52" selection-end-line="44" selection-end-column="77" />
  776 + <folding>
  777 + <element signature="e#47#66#0" expanded="true" />
  778 + <marker date="1516000191000" expanded="true" signature="1736:1756" ph="select * fro... " />
  779 + <marker date="1516000191000" expanded="true" signature="1736:1758" ph="select * fro... missing_value" />
  780 + <marker date="1516000191000" expanded="true" signature="1736:1782" ph="select count... missing_value" />
  781 + <marker date="1516000191000" expanded="true" signature="1736:1783" ph="select count... missing_value" />
  782 + </folding>
826 783 </state>
827 784 </provider>
828 785 </entry>
829   - <entry file="file://$PROJECT_DIR$/test_cases/app_record_statistic.py">
  786 + <entry file="file://$PROJECT_DIR$/HTMLTestRunner.py">
830 787 <provider selected="true" editor-type-id="text-editor">
831   - <state relative-caret-position="306">
832   - <caret line="18" column="53" lean-forward="true" selection-start-line="18" selection-start-column="53" selection-end-line="18" selection-end-column="53" />
  788 + <state relative-caret-position="150">
  789 + <caret line="643" column="0" lean-forward="false" selection-start-line="643" selection-start-column="0" selection-end-line="643" selection-end-column="0" />
833 790 <folding>
834   - <element signature="e#47#62#0" expanded="true" />
  791 + <element signature="e#8852#10678#0" expanded="false" />
835 792 </folding>
836 793 </state>
837 794 </provider>
838 795 </entry>
839   - <entry file="file://$PROJECT_DIR$/test_cases/subject_sync.py">
  796 + <entry file="file://$PROJECT_DIR$/test_cases/parent_space.py">
840 797 <provider selected="true" editor-type-id="text-editor">
841   - <state relative-caret-position="204">
842   - <caret line="12" column="0" lean-forward="true" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
  798 + <state relative-caret-position="443">
  799 + <caret line="101" column="100" lean-forward="true" selection-start-line="101" selection-start-column="100" selection-end-line="101" selection-end-column="100" />
843 800 <folding>
844 801 <element signature="e#47#62#0" expanded="true" />
  802 + <marker date="1516000648000" expanded="true" signature="2794:2878" ph="SELECT custo... ozing_customermachine" />
845 803 </folding>
846 804 </state>
847 805 </provider>
848 806 </entry>
849 807 <entry file="file://$PROJECT_DIR$/data_fixture/create_testdata.py">
850 808 <provider selected="true" editor-type-id="text-editor">
851   - <state relative-caret-position="666">
852   - <caret line="356" column="79" lean-forward="false" selection-start-line="356" selection-start-column="67" selection-end-line="356" selection-end-column="79" />
  809 + <state relative-caret-position="382">
  810 + <caret line="32" column="21" lean-forward="true" selection-start-line="32" selection-start-column="21" selection-end-line="32" selection-end-column="21" />
853 811 <folding>
854 812 <element signature="e#47#83#0" expanded="true" />
855   - <marker date="1515219431000" expanded="true" signature="1421:1488" ph="select * fro... ozing_customermachine" />
856   - <marker date="1515219431000" expanded="true" signature="1421:1489" ph="select * fro... ozing_customermachine" />
857   - <marker date="1515219431000" expanded="true" signature="1421:1491" ph="select * fro... ozing_customermachine" />
858   - <marker date="1515219431000" expanded="true" signature="1421:1492" ph="select * fro... ozing_customermachine" />
859   - <marker date="1515219431000" expanded="true" signature="1421:1518" ph="select * fro... ozing_customermachine" />
860   - <marker date="1515219431000" expanded="true" signature="1549:1608" ph="SELECT * FRO... ozing_machine" />
861   - <marker date="1515219431000" expanded="true" signature="1549:1609" ph="SELECT * FRO... ozing_machine" />
862   - <marker date="1515219431000" expanded="true" signature="1549:1612" ph="SELECT * FRO... ozing_machine" />
863   - <marker date="1515219431000" expanded="true" signature="1549:1613" ph="SELECT * FRO... ozing_machine" />
864   - <marker date="1515219431000" expanded="true" signature="1549:1639" ph="SELECT * FRO... ozing_machine" />
865   - <marker date="1515219431000" expanded="true" signature="1752:2214" ph="insert into acornuser.ozing_customermachine... " />
866   - <marker date="1515219431000" expanded="true" signature="2928:2997" ph="SELECT * FRO... ozing_samplemachine" />
867   - <marker date="1515219431000" expanded="true" signature="3049:3113" ph="SELECT * FRO... ozing_machine" />
868   - <marker date="1515219431000" expanded="true" signature="4735:4806" ph="select * fro... ozing_customermachine" />
869   - <marker date="1515219431000" expanded="true" signature="5151:5215" ph="SELECT * FRO... ozing_machine" />
870   - <marker date="1515219431000" expanded="true" signature="5276:5356" ph="SELECT * FRO... ozing_machine" />
871   - <marker date="1515219431000" expanded="true" signature="6222:6293" ph="select * fro... ozing_customermachine" />
872   - <marker date="1515219431000" expanded="true" signature="6578:6641" ph="select * fro... ozing_machine" />
873   - <marker date="1515219431000" expanded="true" signature="7715:7780" ph="update acorn... " />
874   - <marker date="1515219431000" expanded="true" signature="7715:7804" ph="update acorn... " />
875   - <marker date="1515219431000" expanded="true" signature="7928:8009" ph="select * fro... child_user" />
876   - <marker date="1515219431000" expanded="true" signature="8075:8156" ph="select * fro... child_user" />
877   - <marker date="1515219431000" expanded="true" signature="8075:8203" ph="select * fro... child_user" />
878   - <marker date="1515219431000" expanded="true" signature="8075:8205" ph="select * fro... child_user" />
879   - <marker date="1515219431000" expanded="true" signature="9093:9178" ph="select * fro... acorn_user_status" />
880   - <marker date="1515219431000" expanded="true" signature="9320:9420" ph="select * fro... acorn_user_status" />
881   - <marker date="1515219431000" expanded="true" signature="10158:10258" ph="select * fro... acorn_user_status" />
882   - <marker date="1515219431000" expanded="true" signature="11302:11360" ph="select * fro... acorn_user_extra" />
883   - <marker date="1515219431000" expanded="true" signature="11397:11483" ph="select * fro... acorn_user_extra" />
884   - <marker date="1515219431000" expanded="true" signature="11914:11983" ph="select * fro... subAccount_user_extra" />
885   - <marker date="1515219431000" expanded="true" signature="11914:11984" ph="select * fro... subAccount_user_extra" />
886   - <marker date="1515219431000" expanded="true" signature="11914:11988" ph="select * fro... subAccount_user_extra" />
887   - <marker date="1515219431000" expanded="true" signature="12023:12092" ph="select * fro... subAccount_user_extra" />
888   - <marker date="1515219431000" expanded="true" signature="12023:12122" ph="select * fro... subAccount_user_extra" />
889   - <marker date="1515219431000" expanded="true" signature="12023:12138" ph="select * fro... subAccount_user_extra" />
890   - <marker date="1515219431000" expanded="true" signature="13348:13448" ph="select * fro... ozing_student" />
891   - <marker date="1515219431000" expanded="true" signature="13550:13636" ph="update acorn... " />
892   - <marker date="1515219431000" expanded="true" signature="13550:13638" ph="update acorn... " />
893   - <marker date="1515219431000" expanded="true" signature="13726:13834" ph="select * fro... ozing_student" />
894   - <marker date="1515219431000" expanded="true" signature="15966:16006" ph="select max(i... acorn_user" />
895   - <marker date="1515219431000" expanded="true" signature="15966:16008" ph="select max(i... acorn_user" />
896   - <marker date="1515219431000" expanded="true" signature="16721:16796" ph="select passw... parents_space_pass" />
897   - <marker date="1515219431000" expanded="true" signature="17752:17804" ph="update analy... " />
898   - <marker date="1515219431000" expanded="true" signature="17752:17821" ph="update analy... " />
899   - <marker date="1515219431000" expanded="true" signature="17752:17849" ph="update analy... " />
900   - <marker date="1515219431000" expanded="true" signature="17752:17850" ph="update analy... " />
  813 + <marker date="1516001168000" expanded="true" signature="1887:1954" ph="select * fro... ozing_customermachine" />
  814 + <marker date="1516001168000" expanded="true" signature="1887:1955" ph="select * fro... ozing_customermachine" />
  815 + <marker date="1516001168000" expanded="true" signature="1887:1957" ph="select * fro... ozing_customermachine" />
  816 + <marker date="1516001168000" expanded="true" signature="1887:1958" ph="select * fro... ozing_customermachine" />
  817 + <marker date="1516001168000" expanded="true" signature="1887:1984" ph="select * fro... ozing_customermachine" />
  818 + <marker date="1516001168000" expanded="true" signature="2015:2074" ph="SELECT * FRO... ozing_machine" />
  819 + <marker date="1516001168000" expanded="true" signature="2015:2075" ph="SELECT * FRO... ozing_machine" />
  820 + <marker date="1516001168000" expanded="true" signature="2015:2078" ph="SELECT * FRO... ozing_machine" />
  821 + <marker date="1516001168000" expanded="true" signature="2015:2079" ph="SELECT * FRO... ozing_machine" />
  822 + <marker date="1516001168000" expanded="true" signature="2015:2105" ph="SELECT * FRO... ozing_machine" />
  823 + <marker date="1516001168000" expanded="true" signature="2218:2680" ph="insert into acornuser.ozing_customermachine... " />
  824 + <marker date="1516001168000" expanded="true" signature="3394:3463" ph="SELECT * FRO... ozing_samplemachine" />
  825 + <marker date="1516001168000" expanded="true" signature="3515:3579" ph="SELECT * FRO... ozing_machine" />
  826 + <marker date="1516001168000" expanded="true" signature="5201:5272" ph="select * fro... ozing_customermachine" />
  827 + <marker date="1516001168000" expanded="true" signature="5617:5681" ph="SELECT * FRO... ozing_machine" />
  828 + <marker date="1516001168000" expanded="true" signature="5742:5822" ph="SELECT * FRO... ozing_machine" />
  829 + <marker date="1516001168000" expanded="true" signature="6688:6759" ph="select * fro... ozing_customermachine" />
  830 + <marker date="1516001168000" expanded="true" signature="7044:7107" ph="select * fro... ozing_machine" />
  831 + <marker date="1516001168000" expanded="true" signature="8181:8246" ph="update acorn... " />
  832 + <marker date="1516001168000" expanded="true" signature="8181:8270" ph="update acorn... " />
  833 + <marker date="1516001168000" expanded="true" signature="8394:8475" ph="select * fro... child_user" />
  834 + <marker date="1516001168000" expanded="true" signature="8541:8622" ph="select * fro... child_user" />
  835 + <marker date="1516001168000" expanded="true" signature="8541:8669" ph="select * fro... child_user" />
  836 + <marker date="1516001168000" expanded="true" signature="8541:8671" ph="select * fro... child_user" />
  837 + <marker date="1516001168000" expanded="true" signature="9559:9644" ph="select * fro... acorn_user_status" />
  838 + <marker date="1516001168000" expanded="true" signature="9786:9886" ph="select * fro... acorn_user_status" />
  839 + <marker date="1516001168000" expanded="true" signature="10624:10724" ph="select * fro... acorn_user_status" />
  840 + <marker date="1516001168000" expanded="true" signature="11768:11826" ph="select * fro... acorn_user_extra" />
  841 + <marker date="1516001168000" expanded="true" signature="11863:11949" ph="select * fro... acorn_user_extra" />
  842 + <marker date="1516001168000" expanded="true" signature="12380:12449" ph="select * fro... subAccount_user_extra" />
  843 + <marker date="1516001168000" expanded="true" signature="12380:12450" ph="select * fro... subAccount_user_extra" />
  844 + <marker date="1516001168000" expanded="true" signature="12380:12454" ph="select * fro... subAccount_user_extra" />
  845 + <marker date="1516001168000" expanded="true" signature="12489:12558" ph="select * fro... subAccount_user_extra" />
  846 + <marker date="1516001168000" expanded="true" signature="12489:12588" ph="select * fro... subAccount_user_extra" />
  847 + <marker date="1516001168000" expanded="true" signature="12489:12604" ph="select * fro... subAccount_user_extra" />
  848 + <marker date="1516001168000" expanded="true" signature="13814:13914" ph="select * fro... ozing_student" />
  849 + <marker date="1516001168000" expanded="true" signature="14016:14102" ph="update acorn... " />
  850 + <marker date="1516001168000" expanded="true" signature="14016:14104" ph="update acorn... " />
  851 + <marker date="1516001168000" expanded="true" signature="14192:14300" ph="select * fro... ozing_student" />
  852 + <marker date="1516001168000" expanded="true" signature="16432:16472" ph="select max(i... acorn_user" />
  853 + <marker date="1516001168000" expanded="true" signature="16432:16474" ph="select max(i... acorn_user" />
  854 + <marker date="1516001168000" expanded="true" signature="17187:17262" ph="select passw... parents_space_pass" />
  855 + <marker date="1516001168000" expanded="true" signature="18218:18270" ph="update analy... " />
  856 + <marker date="1516001168000" expanded="true" signature="18218:18287" ph="update analy... " />
  857 + <marker date="1516001168000" expanded="true" signature="18218:18315" ph="update analy... " />
  858 + <marker date="1516001168000" expanded="true" signature="18218:18316" ph="update analy... " />
901 859 </folding>
902 860 </state>
903 861 </provider>
904 862 </entry>
905   - <entry file="file://$PROJECT_DIR$/run_test.py">
  863 + <entry file="file://$PROJECT_DIR$/test_cases/app_record_statistic.py">
906 864 <provider selected="true" editor-type-id="text-editor">
907   - <state relative-caret-position="408">
908   - <caret line="24" column="37" lean-forward="false" selection-start-line="24" selection-start-column="37" selection-end-line="24" selection-end-column="37" />
909   - <folding>
910   - <element signature="e#47#62#0" expanded="true" />
911   - </folding>
  865 + <state relative-caret-position="3961">
  866 + <caret line="240" column="30" lean-forward="true" selection-start-line="240" selection-start-column="30" selection-end-line="240" selection-end-column="30" />
  867 + <folding />
912 868 </state>
913 869 </provider>
914 870 </entry>
915   - <entry file="file://$PROJECT_DIR$/test_cases/register.py">
  871 + <entry file="file://$PROJECT_DIR$/test_cases/personal_info.py">
916 872 <provider selected="true" editor-type-id="text-editor">
917   - <state relative-caret-position="459">
918   - <caret line="27" column="55" lean-forward="true" selection-start-line="27" selection-start-column="55" selection-end-line="27" selection-end-column="55" />
  873 + <state relative-caret-position="114">
  874 + <caret line="224" column="43" lean-forward="true" selection-start-line="224" selection-start-column="43" selection-end-line="224" selection-end-column="43" />
919 875 <folding>
920 876 <element signature="e#47#62#0" expanded="true" />
921 877 </folding>
... ... @@ -924,22 +880,26 @@
924 880 </entry>
925 881 <entry file="file://$PROJECT_DIR$/data_fixture/config_data.py">
926 882 <provider selected="true" editor-type-id="text-editor">
927   - <state relative-caret-position="68">
928   - <caret line="4" column="22" lean-forward="false" selection-start-line="4" selection-start-column="9" selection-end-line="4" selection-end-column="22" />
  883 + <state relative-caret-position="225">
  884 + <caret line="40" column="30" lean-forward="true" selection-start-line="40" selection-start-column="30" selection-end-line="40" selection-end-column="30" />
929 885 <folding />
930 886 </state>
931 887 </provider>
932 888 </entry>
933   - <entry file="file://$PROJECT_DIR$/data_fixture/mysql_db.py">
  889 + <entry file="file://$PROJECT_DIR$/test_cases/subject_sync.py">
934 890 <provider selected="true" editor-type-id="text-editor">
935   - <state relative-caret-position="358">
936   - <caret line="38" column="48" lean-forward="true" selection-start-line="38" selection-start-column="48" selection-end-line="38" selection-end-column="48" />
  891 + <state relative-caret-position="1921">
  892 + <caret line="118" column="54" lean-forward="true" selection-start-line="118" selection-start-column="54" selection-end-line="118" selection-end-column="54" />
  893 + <folding />
  894 + </state>
  895 + </provider>
  896 + </entry>
  897 + <entry file="file://$PROJECT_DIR$/run_test.py">
  898 + <provider selected="true" editor-type-id="text-editor">
  899 + <state relative-caret-position="493">
  900 + <caret line="29" column="25" lean-forward="true" selection-start-line="29" selection-start-column="25" selection-end-line="29" selection-end-column="25" />
937 901 <folding>
938   - <element signature="e#47#66#0" expanded="true" />
939   - <marker date="1515742817000" expanded="true" signature="1735:1755" ph="select * fro... " />
940   - <marker date="1515742817000" expanded="true" signature="1735:1757" ph="select * fro... missing_value" />
941   - <marker date="1515742817000" expanded="true" signature="1735:1781" ph="select count... missing_value" />
942   - <marker date="1515742817000" expanded="true" signature="1735:1782" ph="select count... missing_value" />
  902 + <element signature="e#47#62#0" expanded="true" />
943 903 </folding>
944 904 </state>
945 905 </provider>
... ...
data_fixture/__pycache__/create_testdata.cpython-36.pyc
No preview for this file type
data_fixture/__pycache__/mysql_db.cpython-36.pyc
No preview for this file type
data_fixture/create_testdata.py
... ... @@ -14,6 +14,15 @@ import uuid
14 14 db = DB()
15 15  
16 16 ## *********************************************************************************************************************
  17 +## 数据库通用操作
  18 +## *********************************************************************************************************************
  19 +def db_select_bysql(sql):
  20 + return db.select(sql)
  21 +
  22 +def db_select(tabel_name, where_data_equal, where_data_unequal = None):
  23 + return db.select_(tabel_name, where_data_equal, where_data_unequal)
  24 +
  25 +## *********************************************************************************************************************
17 26 ## 验证码
18 27 ## *********************************************************************************************************************
19 28 def fet_authCode(mobile):
... ...
data_fixture/mysql_db.py
... ... @@ -29,7 +29,7 @@ class DB:
29 29 user=Data.DB_USERNAME,
30 30 password=Data.DB_PASSWORD,
31 31 charset='utf8mb4',
32   - connect_timeout=3600,
  32 + connect_timeout=10000,
33 33 cursorclass=pymysql.cursors.DictCursor
34 34 )
35 35 except pymysql.err.OperationalError as e:
... ... @@ -64,6 +64,7 @@ class DB:
64 64 cursor.execute(real_sql)
65 65 self.connection.commit()
66 66  
  67 +
67 68 def update(self, table_name, set_data, where_data):
68 69 sql_set = ','.join("{}='{}'".format(key, value) for (key, value) in set_data.items())
69 70 sql_where = ' and '.join("{}='{}'".format(key, value) for (key, value) in where_data.items())
... ...
report/test_report copy.html
... ... @@ -0,0 +1,1925 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3 +<html xmlns="http://www.w3.org/1999/xhtml">
  4 +<head>
  5 + <title>Unit Test Report</title>
  6 + <meta name="generator" content="HTMLTestRunner 0.8.2"/>
  7 + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  8 +
  9 +<style type="text/css" media="screen">
  10 +body { font-family: verdana, arial, helvetica, sans-serif; font-size: 80%; }
  11 +table { font-size: 100%; }
  12 +pre { }
  13 +
  14 +/* -- heading ---------------------------------------------------------------------- */
  15 +h1 {
  16 + font-size: 16pt;
  17 + color: gray;
  18 +}
  19 +.heading {
  20 + margin-top: 0ex;
  21 + margin-bottom: 1ex;
  22 +}
  23 +
  24 +.heading .attribute {
  25 + margin-top: 1ex;
  26 + margin-bottom: 0;
  27 +}
  28 +
  29 +.heading .description {
  30 + margin-top: 4ex;
  31 + margin-bottom: 6ex;
  32 +}
  33 +
  34 +/* -- css div popup ------------------------------------------------------------------------ */
  35 +a.popup_link {
  36 +}
  37 +
  38 +a.popup_link:hover {
  39 + color: red;
  40 +}
  41 +
  42 +.popup_window {
  43 + display: none;
  44 + position: relative;
  45 + left: 0px;
  46 + top: 0px;
  47 + /*border: solid #627173 1px; */
  48 + padding: 10px;
  49 + background-color: #E6E6D6;
  50 + font-family: "Lucida Console", "Courier New", Courier, monospace;
  51 + text-align: left;
  52 + font-size: 8pt;
  53 + width: 500px;
  54 +}
  55 +
  56 +}
  57 +/* -- report ------------------------------------------------------------------------ */
  58 +#show_detail_line {
  59 + margin-top: 3ex;
  60 + margin-bottom: 1ex;
  61 +}
  62 +#result_table {
  63 + width: 80%;
  64 + border-collapse: collapse;
  65 + border: 1px solid #777;
  66 +}
  67 +#header_row {
  68 + font-weight: bold;
  69 + color: white;
  70 + background-color: #777;
  71 +}
  72 +#result_table td {
  73 + border: 1px solid #777;
  74 + padding: 2px;
  75 +}
  76 +#total_row { font-weight: bold; }
  77 +.passClass { background-color: #6c6; }
  78 +.failClass { background-color: #c60; }
  79 +.errorClass { background-color: #c00; }
  80 +.passCase { color: #6c6; }
  81 +.failCase { color: #c60; font-weight: bold; }
  82 +.errorCase { color: #c00; font-weight: bold; }
  83 +.hiddenRow { display: none; }
  84 +.testcase { margin-left: 2em; }
  85 +
  86 +
  87 +/* -- ending ---------------------------------------------------------------------- */
  88 +#ending {
  89 +}
  90 +
  91 +</style>
  92 +
  93 +</head>
  94 +<body>
  95 +<script language="javascript" type="text/javascript"><!--
  96 +output_list = Array();
  97 +
  98 +/* level - 0:Summary; 1:Failed; 2:All */
  99 +function showCase(level) {
  100 + trs = document.getElementsByTagName("tr");
  101 + for (var i = 0; i < trs.length; i++) {
  102 + tr = trs[i];
  103 + id = tr.id;
  104 + if (id.substr(0,2) == 'ft') {
  105 + if (level < 1) {
  106 + tr.className = 'hiddenRow';
  107 + }
  108 + else {
  109 + tr.className = '';
  110 + }
  111 + }
  112 + if (id.substr(0,2) == 'pt') {
  113 + if (level > 1) {
  114 + tr.className = '';
  115 + }
  116 + else {
  117 + tr.className = 'hiddenRow';
  118 + }
  119 + }
  120 + }
  121 +}
  122 +
  123 +
  124 +function showClassDetail(cid, count) {
  125 + var id_list = Array(count);
  126 + var toHide = 1;
  127 + for (var i = 0; i < count; i++) {
  128 + tid0 = 't' + cid.substr(1) + '.' + (i+1);
  129 + tid = 'f' + tid0;
  130 + tr = document.getElementById(tid);
  131 + if (!tr) {
  132 + tid = 'p' + tid0;
  133 + tr = document.getElementById(tid);
  134 + }
  135 + id_list[i] = tid;
  136 + if (tr.className) {
  137 + toHide = 0;
  138 + }
  139 + }
  140 + for (var i = 0; i < count; i++) {
  141 + tid = id_list[i];
  142 + if (toHide) {
  143 + document.getElementById('div_'+tid).style.display = 'none'
  144 + document.getElementById(tid).className = 'hiddenRow';
  145 + }
  146 + else {
  147 + document.getElementById(tid).className = '';
  148 + }
  149 + }
  150 +}
  151 +
  152 +
  153 +function showTestDetail(div_id){
  154 + var details_div = document.getElementById(div_id)
  155 + var displayState = details_div.style.display
  156 + // alert(displayState)
  157 + if (displayState != 'block' ) {
  158 + displayState = 'block'
  159 + details_div.style.display = 'block'
  160 + }
  161 + else {
  162 + details_div.style.display = 'none'
  163 + }
  164 +}
  165 +
  166 +
  167 +function html_escape(s) {
  168 + s = s.replace(/&/g,'&amp;');
  169 + s = s.replace(/</g,'&lt;');
  170 + s = s.replace(/>/g,'&gt;');
  171 + return s;
  172 +}
  173 +
  174 +/* obsoleted by detail in <div>
  175 +function showOutput(id, name) {
  176 + var w = window.open("", //url
  177 + name,
  178 + "resizable,scrollbars,status,width=800,height=450");
  179 + d = w.document;
  180 + d.write("<pre>");
  181 + d.write(html_escape(output_list[id]));
  182 + d.write("\n");
  183 + d.write("<a href='javascript:window.close()'>close</a>\n");
  184 + d.write("</pre>\n");
  185 + d.close();
  186 +}
  187 +*/
  188 +--></script>
  189 +
  190 +<div class='heading'>
  191 +<h1>Unit Test Report</h1>
  192 +<p class='attribute'><strong>Start Time:</strong> 2018-01-15 11:22:52</p>
  193 +<p class='attribute'><strong>Duration:</strong> 0:01:10.454840</p>
  194 +<p class='attribute'><strong>Status:</strong> Pass 64 Failure 1 Error 7</p>
  195 +
  196 +<p class='description'></p>
  197 +</div>
  198 +
  199 +
  200 +
  201 +<p id='show_detail_line'>Show
  202 +<a href='javascript:showCase(0)'>Summary</a>
  203 +<a href='javascript:showCase(1)'>Failed</a>
  204 +<a href='javascript:showCase(2)'>All</a>
  205 +</p>
  206 +<table id='result_table'>
  207 +<colgroup>
  208 +<col align='left' />
  209 +<col align='right' />
  210 +<col align='right' />
  211 +<col align='right' />
  212 +<col align='right' />
  213 +<col align='right' />
  214 +</colgroup>
  215 +<tr id='header_row'>
  216 + <td>Test Group/Test case</td>
  217 + <td>Count</td>
  218 + <td>Pass</td>
  219 + <td>Fail</td>
  220 + <td>Error</td>
  221 + <td>View</td>
  222 +</tr>
  223 +
  224 +<tr class='passClass'>
  225 + <td>app_record_statistic.AppRecordEveryday</td>
  226 + <td>1</td>
  227 + <td>1</td>
  228 + <td>0</td>
  229 + <td>0</td>
  230 + <td><a href="javascript:showClassDetail('c1',1)">Detail</a></td>
  231 +</tr>
  232 +
  233 +<tr id='pt1.1' class='hiddenRow'>
  234 + <td class='none'><div class='testcase'>test_getAppRecordEveryday_success</div></td>
  235 + <td colspan='5' align='center'>pass</td>
  236 +</tr>
  237 +
  238 +<tr class='passClass'>
  239 + <td>app_record_statistic.AppRecordOneday</td>
  240 + <td>1</td>
  241 + <td>1</td>
  242 + <td>0</td>
  243 + <td>0</td>
  244 + <td><a href="javascript:showClassDetail('c2',1)">Detail</a></td>
  245 +</tr>
  246 +
  247 +<tr id='pt2.1' class='hiddenRow'>
  248 + <td class='none'><div class='testcase'>test_getAppRecordOneday_success</div></td>
  249 + <td colspan='5' align='center'>pass</td>
  250 +</tr>
  251 +
  252 +<tr class='passClass'>
  253 + <td>app_record_statistic.AppRecordReset</td>
  254 + <td>2</td>
  255 + <td>2</td>
  256 + <td>0</td>
  257 + <td>0</td>
  258 + <td><a href="javascript:showClassDetail('c3',2)">Detail</a></td>
  259 +</tr>
  260 +
  261 +<tr id='pt3.1' class='hiddenRow'>
  262 + <td class='none'><div class='testcase'>test_AppRecordReset_passwordError</div></td>
  263 + <td colspan='5' align='center'>pass</td>
  264 +</tr>
  265 +
  266 +<tr id='pt3.2' class='hiddenRow'>
  267 + <td class='none'><div class='testcase'>test_AppRecordReset_success</div></td>
  268 + <td colspan='5' align='center'>pass</td>
  269 +</tr>
  270 +
  271 +<tr class='passClass'>
  272 + <td>app_record_statistic.AppRecordSave</td>
  273 + <td>1</td>
  274 + <td>1</td>
  275 + <td>0</td>
  276 + <td>0</td>
  277 + <td><a href="javascript:showClassDetail('c4',1)">Detail</a></td>
  278 +</tr>
  279 +
  280 +<tr id='pt4.1' class='hiddenRow'>
  281 + <td class='none'><div class='testcase'>test_AppRecordSave_success</div></td>
  282 + <td colspan='5' align='center'>
  283 +
  284 + <!--css div popup start-->
  285 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt4.1')" >
  286 + pass</a>
  287 +
  288 + <div id='div_pt4.1' class="popup_window">
  289 + <div style='text-align: right; color:red;cursor:pointer'>
  290 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt4.1').style.display = 'none' " >
  291 + [x]</a>
  292 + </div>
  293 + <pre>
  294 +
  295 +pt4.1:
  296 +
  297 + </pre>
  298 + </div>
  299 + <!--css div popup end-->
  300 +
  301 + </td>
  302 +</tr>
  303 +
  304 +<tr class='passClass'>
  305 + <td>app_record_statistic.AppRecordStats</td>
  306 + <td>4</td>
  307 + <td>4</td>
  308 + <td>0</td>
  309 + <td>0</td>
  310 + <td><a href="javascript:showClassDetail('c5',4)">Detail</a></td>
  311 +</tr>
  312 +
  313 +<tr id='pt5.1' class='hiddenRow'>
  314 + <td class='none'><div class='testcase'>test_getAppRecordStats_all_success</div></td>
  315 + <td colspan='5' align='center'>pass</td>
  316 +</tr>
  317 +
  318 +<tr id='pt5.2' class='hiddenRow'>
  319 + <td class='none'><div class='testcase'>test_getAppRecordStats_month_success</div></td>
  320 + <td colspan='5' align='center'>pass</td>
  321 +</tr>
  322 +
  323 +<tr id='pt5.3' class='hiddenRow'>
  324 + <td class='none'><div class='testcase'>test_getAppRecordStats_week_success</div></td>
  325 + <td colspan='5' align='center'>pass</td>
  326 +</tr>
  327 +
  328 +<tr id='pt5.4' class='hiddenRow'>
  329 + <td class='none'><div class='testcase'>test_getAppRecordStats_year_success</div></td>
  330 + <td colspan='5' align='center'>pass</td>
  331 +</tr>
  332 +
  333 +<tr class='passClass'>
  334 + <td>app_record_statistic.AppRecordToday</td>
  335 + <td>1</td>
  336 + <td>1</td>
  337 + <td>0</td>
  338 + <td>0</td>
  339 + <td><a href="javascript:showClassDetail('c6',1)">Detail</a></td>
  340 +</tr>
  341 +
  342 +<tr id='pt6.1' class='hiddenRow'>
  343 + <td class='none'><div class='testcase'>test_AppRecordToday_success</div></td>
  344 + <td colspan='5' align='center'>pass</td>
  345 +</tr>
  346 +
  347 +<tr class='passClass'>
  348 + <td>app_record_statistic.AppRecordTop</td>
  349 + <td>2</td>
  350 + <td>2</td>
  351 + <td>0</td>
  352 + <td>0</td>
  353 + <td><a href="javascript:showClassDetail('c7',2)">Detail</a></td>
  354 +</tr>
  355 +
  356 +<tr id='pt7.1' class='hiddenRow'>
  357 + <td class='none'><div class='testcase'>test_getAppRecordTop_hjx</div></td>
  358 + <td colspan='5' align='center'>pass</td>
  359 +</tr>
  360 +
  361 +<tr id='pt7.2' class='hiddenRow'>
  362 + <td class='none'><div class='testcase'>test_getAppRecordTop_other</div></td>
  363 + <td colspan='5' align='center'>pass</td>
  364 +</tr>
  365 +
  366 +<tr class='passClass'>
  367 + <td>eleccard_check.CheckElecCardBind</td>
  368 + <td>3</td>
  369 + <td>3</td>
  370 + <td>0</td>
  371 + <td>0</td>
  372 + <td><a href="javascript:showClassDetail('c8',3)">Detail</a></td>
  373 +</tr>
  374 +
  375 +<tr id='pt8.1' class='hiddenRow'>
  376 + <td class='none'><div class='testcase'>test_checkElecCard_customerMachine</div></td>
  377 + <td colspan='5' align='center'>
  378 +
  379 + <!--css div popup start-->
  380 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt8.1')" >
  381 + pass</a>
  382 +
  383 + <div id='div_pt8.1' class="popup_window">
  384 + <div style='text-align: right; color:red;cursor:pointer'>
  385 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt8.1').style.display = 'none' " >
  386 + [x]</a>
  387 + </div>
  388 + <pre>
  389 +
  390 +pt8.1:
  391 +
  392 + </pre>
  393 + </div>
  394 + <!--css div popup end-->
  395 +
  396 + </td>
  397 +</tr>
  398 +
  399 +<tr id='pt8.2' class='hiddenRow'>
  400 + <td class='none'><div class='testcase'>test_checkElecCard_sampleMachine</div></td>
  401 + <td colspan='5' align='center'>
  402 +
  403 + <!--css div popup start-->
  404 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt8.2')" >
  405 + pass</a>
  406 +
  407 + <div id='div_pt8.2' class="popup_window">
  408 + <div style='text-align: right; color:red;cursor:pointer'>
  409 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt8.2').style.display = 'none' " >
  410 + [x]</a>
  411 + </div>
  412 + <pre>
  413 +
  414 +pt8.2:
  415 +
  416 + </pre>
  417 + </div>
  418 + <!--css div popup end-->
  419 +
  420 + </td>
  421 +</tr>
  422 +
  423 +<tr id='pt8.3' class='hiddenRow'>
  424 + <td class='none'><div class='testcase'>test_checkElecCard_unbind</div></td>
  425 + <td colspan='5' align='center'>
  426 +
  427 + <!--css div popup start-->
  428 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt8.3')" >
  429 + pass</a>
  430 +
  431 + <div id='div_pt8.3' class="popup_window">
  432 + <div style='text-align: right; color:red;cursor:pointer'>
  433 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt8.3').style.display = 'none' " >
  434 + [x]</a>
  435 + </div>
  436 + <pre>
  437 +
  438 +pt8.3:
  439 +
  440 + </pre>
  441 + </div>
  442 + <!--css div popup end-->
  443 +
  444 + </td>
  445 +</tr>
  446 +
  447 +<tr class='passClass'>
  448 + <td>eleccard_check.GetCardInfo</td>
  449 + <td>1</td>
  450 + <td>1</td>
  451 + <td>0</td>
  452 + <td>0</td>
  453 + <td><a href="javascript:showClassDetail('c9',1)">Detail</a></td>
  454 +</tr>
  455 +
  456 +<tr id='pt9.1' class='hiddenRow'>
  457 + <td class='none'><div class='testcase'>test_getCardInfo_success</div></td>
  458 + <td colspan='5' align='center'>
  459 +
  460 + <!--css div popup start-->
  461 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt9.1')" >
  462 + pass</a>
  463 +
  464 + <div id='div_pt9.1' class="popup_window">
  465 + <div style='text-align: right; color:red;cursor:pointer'>
  466 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt9.1').style.display = 'none' " >
  467 + [x]</a>
  468 + </div>
  469 + <pre>
  470 +
  471 +pt9.1:
  472 +
  473 + </pre>
  474 + </div>
  475 + <!--css div popup end-->
  476 +
  477 + </td>
  478 +</tr>
  479 +
  480 +<tr class='passClass'>
  481 + <td>eleccard_setUp.Card_Modify</td>
  482 + <td>2</td>
  483 + <td>2</td>
  484 + <td>0</td>
  485 + <td>0</td>
  486 + <td><a href="javascript:showClassDetail('c10',2)">Detail</a></td>
  487 +</tr>
  488 +
  489 +<tr id='pt10.1' class='hiddenRow'>
  490 + <td class='none'><div class='testcase'>test_modifyCardInfo_address_success</div></td>
  491 + <td colspan='5' align='center'>
  492 +
  493 + <!--css div popup start-->
  494 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt10.1')" >
  495 + pass</a>
  496 +
  497 + <div id='div_pt10.1' class="popup_window">
  498 + <div style='text-align: right; color:red;cursor:pointer'>
  499 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt10.1').style.display = 'none' " >
  500 + [x]</a>
  501 + </div>
  502 + <pre>
  503 +
  504 +pt10.1:
  505 +
  506 + </pre>
  507 + </div>
  508 + <!--css div popup end-->
  509 +
  510 + </td>
  511 +</tr>
  512 +
  513 +<tr id='pt10.2' class='hiddenRow'>
  514 + <td class='none'><div class='testcase'>test_modifyCardInfo_phone_success</div></td>
  515 + <td colspan='5' align='center'>
  516 +
  517 + <!--css div popup start-->
  518 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt10.2')" >
  519 + pass</a>
  520 +
  521 + <div id='div_pt10.2' class="popup_window">
  522 + <div style='text-align: right; color:red;cursor:pointer'>
  523 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt10.2').style.display = 'none' " >
  524 + [x]</a>
  525 + </div>
  526 + <pre>
  527 +
  528 +pt10.2:
  529 +
  530 + </pre>
  531 + </div>
  532 + <!--css div popup end-->
  533 +
  534 + </td>
  535 +</tr>
  536 +
  537 +<tr class='passClass'>
  538 + <td>eleccard_setUp.SetToCustomer</td>
  539 + <td>1</td>
  540 + <td>1</td>
  541 + <td>0</td>
  542 + <td>0</td>
  543 + <td><a href="javascript:showClassDetail('c11',1)">Detail</a></td>
  544 +</tr>
  545 +
  546 +<tr id='pt11.1' class='hiddenRow'>
  547 + <td class='none'><div class='testcase'>test_updateToCustomer_success</div></td>
  548 + <td colspan='5' align='center'>pass</td>
  549 +</tr>
  550 +
  551 +<tr class='passClass'>
  552 + <td>eleccard_setUp.SetToSample</td>
  553 + <td>1</td>
  554 + <td>1</td>
  555 + <td>0</td>
  556 + <td>0</td>
  557 + <td><a href="javascript:showClassDetail('c12',1)">Detail</a></td>
  558 +</tr>
  559 +
  560 +<tr id='pt12.1' class='hiddenRow'>
  561 + <td class='none'><div class='testcase'>test_updateToSample_success</div></td>
  562 + <td colspan='5' align='center'>pass</td>
  563 +</tr>
  564 +
  565 +<tr class='failClass'>
  566 + <td>eleccard_setUp.SetUpElecCard</td>
  567 + <td>1</td>
  568 + <td>0</td>
  569 + <td>1</td>
  570 + <td>0</td>
  571 + <td><a href="javascript:showClassDetail('c13',1)">Detail</a></td>
  572 +</tr>
  573 +
  574 +<tr id='ft13.1' class='none'>
  575 + <td class='failCase'><div class='testcase'>test_addElecCard_success</div></td>
  576 + <td colspan='5' align='center'>
  577 +
  578 + <!--css div popup start-->
  579 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft13.1')" >
  580 + fail</a>
  581 +
  582 + <div id='div_ft13.1' class="popup_window">
  583 + <div style='text-align: right; color:red;cursor:pointer'>
  584 + <a onfocus='this.blur();' onclick="document.getElementById('div_ft13.1').style.display = 'none' " >
  585 + [x]</a>
  586 + </div>
  587 + <pre>
  588 +
  589 +ft13.1: Traceback (most recent call last):
  590 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/eleccard_setUp.py", line 34, in test_addElecCard_success
  591 + self.assertEqual(self.result['status'], 1, 'addElecCard Error')
  592 +AssertionError: 2003 != 1 : addElecCard Error
  593 +Traceback (most recent call last):
  594 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/eleccard_setUp.py", line 34, in test_addElecCard_success
  595 + self.assertEqual(self.result['status'], 1, 'addElecCard Error')
  596 +AssertionError: 2003 != 1 : addElecCard Error
  597 +
  598 +
  599 + </pre>
  600 + </div>
  601 + <!--css div popup end-->
  602 +
  603 + </td>
  604 +</tr>
  605 +
  606 +<tr class='passClass'>
  607 + <td>eleccard_setUp.Unbind</td>
  608 + <td>1</td>
  609 + <td>1</td>
  610 + <td>0</td>
  611 + <td>0</td>
  612 + <td><a href="javascript:showClassDetail('c14',1)">Detail</a></td>
  613 +</tr>
  614 +
  615 +<tr id='pt14.1' class='hiddenRow'>
  616 + <td class='none'><div class='testcase'>test_unbindCard_success</div></td>
  617 + <td colspan='5' align='center'>pass</td>
  618 +</tr>
  619 +
  620 +<tr class='passClass'>
  621 + <td>parent_space.ParentSpaceChangePassword</td>
  622 + <td>1</td>
  623 + <td>1</td>
  624 + <td>0</td>
  625 + <td>0</td>
  626 + <td><a href="javascript:showClassDetail('c15',1)">Detail</a></td>
  627 +</tr>
  628 +
  629 +<tr id='pt15.1' class='hiddenRow'>
  630 + <td class='none'><div class='testcase'>test_ParentSpaceChangePassword_success</div></td>
  631 + <td colspan='5' align='center'>
  632 +
  633 + <!--css div popup start-->
  634 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt15.1')" >
  635 + pass</a>
  636 +
  637 + <div id='div_pt15.1' class="popup_window">
  638 + <div style='text-align: right; color:red;cursor:pointer'>
  639 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt15.1').style.display = 'none' " >
  640 + [x]</a>
  641 + </div>
  642 + <pre>
  643 +
  644 +pt15.1:
  645 +
  646 + </pre>
  647 + </div>
  648 + <!--css div popup end-->
  649 +
  650 + </td>
  651 +</tr>
  652 +
  653 +<tr class='passClass'>
  654 + <td>parent_space.ParentSpaceLogin</td>
  655 + <td>2</td>
  656 + <td>2</td>
  657 + <td>0</td>
  658 + <td>0</td>
  659 + <td><a href="javascript:showClassDetail('c16',2)">Detail</a></td>
  660 +</tr>
  661 +
  662 +<tr id='pt16.1' class='hiddenRow'>
  663 + <td class='none'><div class='testcase'>test_ParentSpaceLogin_WrongPassword</div></td>
  664 + <td colspan='5' align='center'>
  665 +
  666 + <!--css div popup start-->
  667 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt16.1')" >
  668 + pass</a>
  669 +
  670 + <div id='div_pt16.1' class="popup_window">
  671 + <div style='text-align: right; color:red;cursor:pointer'>
  672 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt16.1').style.display = 'none' " >
  673 + [x]</a>
  674 + </div>
  675 + <pre>
  676 +
  677 +pt16.1:
  678 +
  679 + </pre>
  680 + </div>
  681 + <!--css div popup end-->
  682 +
  683 + </td>
  684 +</tr>
  685 +
  686 +<tr id='pt16.2' class='hiddenRow'>
  687 + <td class='none'><div class='testcase'>test_ParentSpaceLogin_success</div></td>
  688 + <td colspan='5' align='center'>
  689 +
  690 + <!--css div popup start-->
  691 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt16.2')" >
  692 + pass</a>
  693 +
  694 + <div id='div_pt16.2' class="popup_window">
  695 + <div style='text-align: right; color:red;cursor:pointer'>
  696 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt16.2').style.display = 'none' " >
  697 + [x]</a>
  698 + </div>
  699 + <pre>
  700 +
  701 +pt16.2:
  702 +
  703 + </pre>
  704 + </div>
  705 + <!--css div popup end-->
  706 +
  707 + </td>
  708 +</tr>
  709 +
  710 +<tr class='passClass'>
  711 + <td>parent_space.ParentSpaceNewPassword</td>
  712 + <td>2</td>
  713 + <td>2</td>
  714 + <td>0</td>
  715 + <td>0</td>
  716 + <td><a href="javascript:showClassDetail('c17',2)">Detail</a></td>
  717 +</tr>
  718 +
  719 +<tr id='pt17.1' class='hiddenRow'>
  720 + <td class='none'><div class='testcase'>test_ParentSpaceNewPassword_authCodeError</div></td>
  721 + <td colspan='5' align='center'>pass</td>
  722 +</tr>
  723 +
  724 +<tr id='pt17.2' class='hiddenRow'>
  725 + <td class='none'><div class='testcase'>test_ParentSpaceNewPassword_success</div></td>
  726 + <td colspan='5' align='center'>pass</td>
  727 +</tr>
  728 +
  729 +<tr class='passClass'>
  730 + <td>personal_info.AddorUpdateSignature</td>
  731 + <td>4</td>
  732 + <td>4</td>
  733 + <td>0</td>
  734 + <td>0</td>
  735 + <td><a href="javascript:showClassDetail('c18',4)">Detail</a></td>
  736 +</tr>
  737 +
  738 +<tr id='pt18.1' class='hiddenRow'>
  739 + <td class='none'><div class='testcase'>test_AddChildSignature_success</div></td>
  740 + <td colspan='5' align='center'>
  741 +
  742 + <!--css div popup start-->
  743 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt18.1')" >
  744 + pass</a>
  745 +
  746 + <div id='div_pt18.1' class="popup_window">
  747 + <div style='text-align: right; color:red;cursor:pointer'>
  748 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt18.1').style.display = 'none' " >
  749 + [x]</a>
  750 + </div>
  751 + <pre>
  752 +
  753 +pt18.1:
  754 +
  755 + </pre>
  756 + </div>
  757 + <!--css div popup end-->
  758 +
  759 + </td>
  760 +</tr>
  761 +
  762 +<tr id='pt18.2' class='hiddenRow'>
  763 + <td class='none'><div class='testcase'>test_AddParentSignature_success</div></td>
  764 + <td colspan='5' align='center'>pass</td>
  765 +</tr>
  766 +
  767 +<tr id='pt18.3' class='hiddenRow'>
  768 + <td class='none'><div class='testcase'>test_UpdateChildSignature_success</div></td>
  769 + <td colspan='5' align='center'>pass</td>
  770 +</tr>
  771 +
  772 +<tr id='pt18.4' class='hiddenRow'>
  773 + <td class='none'><div class='testcase'>test_UpdateParentSignature_success</div></td>
  774 + <td colspan='5' align='center'>pass</td>
  775 +</tr>
  776 +
  777 +<tr class='passClass'>
  778 + <td>personal_info.GetPersonalInfo</td>
  779 + <td>2</td>
  780 + <td>2</td>
  781 + <td>0</td>
  782 + <td>0</td>
  783 + <td><a href="javascript:showClassDetail('c19',2)">Detail</a></td>
  784 +</tr>
  785 +
  786 +<tr id='pt19.1' class='hiddenRow'>
  787 + <td class='none'><div class='testcase'>test_getChildAccountInfo_success</div></td>
  788 + <td colspan='5' align='center'>pass</td>
  789 +</tr>
  790 +
  791 +<tr id='pt19.2' class='hiddenRow'>
  792 + <td class='none'><div class='testcase'>test_getParentAccountInfo_success</div></td>
  793 + <td colspan='5' align='center'>pass</td>
  794 +</tr>
  795 +
  796 +<tr class='passClass'>
  797 + <td>personal_info.GetSignature</td>
  798 + <td>2</td>
  799 + <td>2</td>
  800 + <td>0</td>
  801 + <td>0</td>
  802 + <td><a href="javascript:showClassDetail('c20',2)">Detail</a></td>
  803 +</tr>
  804 +
  805 +<tr id='pt20.1' class='hiddenRow'>
  806 + <td class='none'><div class='testcase'>test_getChildSignature_success</div></td>
  807 + <td colspan='5' align='center'>pass</td>
  808 +</tr>
  809 +
  810 +<tr id='pt20.2' class='hiddenRow'>
  811 + <td class='none'><div class='testcase'>test_getParentSignature_success</div></td>
  812 + <td colspan='5' align='center'>pass</td>
  813 +</tr>
  814 +
  815 +<tr class='passClass'>
  816 + <td>personal_info.UpdatePersonalInfo</td>
  817 + <td>2</td>
  818 + <td>2</td>
  819 + <td>0</td>
  820 + <td>0</td>
  821 + <td><a href="javascript:showClassDetail('c21',2)">Detail</a></td>
  822 +</tr>
  823 +
  824 +<tr id='pt21.1' class='hiddenRow'>
  825 + <td class='none'><div class='testcase'>test_UpdateChildInfo_success</div></td>
  826 + <td colspan='5' align='center'>
  827 +
  828 + <!--css div popup start-->
  829 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt21.1')" >
  830 + pass</a>
  831 +
  832 + <div id='div_pt21.1' class="popup_window">
  833 + <div style='text-align: right; color:red;cursor:pointer'>
  834 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt21.1').style.display = 'none' " >
  835 + [x]</a>
  836 + </div>
  837 + <pre>
  838 +
  839 +pt21.1:
  840 +
  841 + </pre>
  842 + </div>
  843 + <!--css div popup end-->
  844 +
  845 + </td>
  846 +</tr>
  847 +
  848 +<tr id='pt21.2' class='hiddenRow'>
  849 + <td class='none'><div class='testcase'>test_UpdateParentInfo_success</div></td>
  850 + <td colspan='5' align='center'>pass</td>
  851 +</tr>
  852 +
  853 +<tr class='passClass'>
  854 + <td>personal_info.UpdatePortrait</td>
  855 + <td>2</td>
  856 + <td>2</td>
  857 + <td>0</td>
  858 + <td>0</td>
  859 + <td><a href="javascript:showClassDetail('c22',2)">Detail</a></td>
  860 +</tr>
  861 +
  862 +<tr id='pt22.1' class='hiddenRow'>
  863 + <td class='none'><div class='testcase'>test_UpdateChildPortrait_success</div></td>
  864 + <td colspan='5' align='center'>
  865 +
  866 + <!--css div popup start-->
  867 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt22.1')" >
  868 + pass</a>
  869 +
  870 + <div id='div_pt22.1' class="popup_window">
  871 + <div style='text-align: right; color:red;cursor:pointer'>
  872 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt22.1').style.display = 'none' " >
  873 + [x]</a>
  874 + </div>
  875 + <pre>
  876 +
  877 +pt22.1:
  878 +
  879 + </pre>
  880 + </div>
  881 + <!--css div popup end-->
  882 +
  883 + </td>
  884 +</tr>
  885 +
  886 +<tr id='pt22.2' class='hiddenRow'>
  887 + <td class='none'><div class='testcase'>test_UpdateParentPortraitDefault_success</div></td>
  888 + <td colspan='5' align='center'>pass</td>
  889 +</tr>
  890 +
  891 +<tr class='passClass'>
  892 + <td>personal_info.UpdatePortraitDefault</td>
  893 + <td>2</td>
  894 + <td>2</td>
  895 + <td>0</td>
  896 + <td>0</td>
  897 + <td><a href="javascript:showClassDetail('c23',2)">Detail</a></td>
  898 +</tr>
  899 +
  900 +<tr id='pt23.1' class='hiddenRow'>
  901 + <td class='none'><div class='testcase'>test_UpdateChildPortraitDefault_success</div></td>
  902 + <td colspan='5' align='center'>pass</td>
  903 +</tr>
  904 +
  905 +<tr id='pt23.2' class='hiddenRow'>
  906 + <td class='none'><div class='testcase'>test_UpdateParentPortraitDefault_success</div></td>
  907 + <td colspan='5' align='center'>pass</td>
  908 +</tr>
  909 +
  910 +<tr class='passClass'>
  911 + <td>press.GetPressList</td>
  912 + <td>1</td>
  913 + <td>1</td>
  914 + <td>0</td>
  915 + <td>0</td>
  916 + <td><a href="javascript:showClassDetail('c24',1)">Detail</a></td>
  917 +</tr>
  918 +
  919 +<tr id='pt24.1' class='hiddenRow'>
  920 + <td class='none'><div class='testcase'>test_getPressList_success</div></td>
  921 + <td colspan='5' align='center'>
  922 +
  923 + <!--css div popup start-->
  924 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt24.1')" >
  925 + pass</a>
  926 +
  927 + <div id='div_pt24.1' class="popup_window">
  928 + <div style='text-align: right; color:red;cursor:pointer'>
  929 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt24.1').style.display = 'none' " >
  930 + [x]</a>
  931 + </div>
  932 + <pre>
  933 +
  934 +pt24.1:
  935 +
  936 + </pre>
  937 + </div>
  938 + <!--css div popup end-->
  939 +
  940 + </td>
  941 +</tr>
  942 +
  943 +<tr class='passClass'>
  944 + <td>press.GetUserPressInfo</td>
  945 + <td>1</td>
  946 + <td>1</td>
  947 + <td>0</td>
  948 + <td>0</td>
  949 + <td><a href="javascript:showClassDetail('c25',1)">Detail</a></td>
  950 +</tr>
  951 +
  952 +<tr id='pt25.1' class='hiddenRow'>
  953 + <td class='none'><div class='testcase'>test_getPressList_success</div></td>
  954 + <td colspan='5' align='center'>
  955 +
  956 + <!--css div popup start-->
  957 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt25.1')" >
  958 + pass</a>
  959 +
  960 + <div id='div_pt25.1' class="popup_window">
  961 + <div style='text-align: right; color:red;cursor:pointer'>
  962 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt25.1').style.display = 'none' " >
  963 + [x]</a>
  964 + </div>
  965 + <pre>
  966 +
  967 +pt25.1:
  968 +
  969 + </pre>
  970 + </div>
  971 + <!--css div popup end-->
  972 +
  973 + </td>
  974 +</tr>
  975 +
  976 +<tr class='errorClass'>
  977 + <td>press.UpdateUserPressInfo</td>
  978 + <td>1</td>
  979 + <td>0</td>
  980 + <td>0</td>
  981 + <td>1</td>
  982 + <td><a href="javascript:showClassDetail('c26',1)">Detail</a></td>
  983 +</tr>
  984 +
  985 +<tr id='ft26.1' class='none'>
  986 + <td class='errorCase'><div class='testcase'>test_getPressList_success</div></td>
  987 + <td colspan='5' align='center'>
  988 +
  989 + <!--css div popup start-->
  990 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft26.1')" >
  991 + error</a>
  992 +
  993 + <div id='div_ft26.1' class="popup_window">
  994 + <div style='text-align: right; color:red;cursor:pointer'>
  995 + <a onfocus='this.blur();' onclick="document.getElementById('div_ft26.1').style.display = 'none' " >
  996 + [x]</a>
  997 + </div>
  998 + <pre>
  999 +
  1000 +ft26.1: Traceback (most recent call last):
  1001 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/press.py", line 88, in test_getPressList_success
  1002 + self.assertEqual(db_test.select_('acornuser.user_press', where), 1, 'UpdateUserPressInfo data Error')
  1003 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1004 + cursor.execute(sql)
  1005 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1006 + result = self._query(query)
  1007 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1008 + conn.query(q)
  1009 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 856, in query
  1010 + self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  1011 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1057, in _read_query_result
  1012 + result.read()
  1013 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1340, in read
  1014 + first_packet = self.connection._read_packet()
  1015 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 987, in _read_packet
  1016 + packet_header = self._read_bytes(4)
  1017 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1033, in _read_bytes
  1018 + CR.CR_SERVER_LOST, "Lost connection to MySQL server during query")
  1019 +pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')
  1020 +Traceback (most recent call last):
  1021 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/press.py", line 88, in test_getPressList_success
  1022 + self.assertEqual(db_test.select_('acornuser.user_press', where), 1, 'UpdateUserPressInfo data Error')
  1023 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1024 + cursor.execute(sql)
  1025 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1026 + result = self._query(query)
  1027 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1028 + conn.query(q)
  1029 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 856, in query
  1030 + self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  1031 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1057, in _read_query_result
  1032 + result.read()
  1033 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1340, in read
  1034 + first_packet = self.connection._read_packet()
  1035 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 987, in _read_packet
  1036 + packet_header = self._read_bytes(4)
  1037 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1033, in _read_bytes
  1038 + CR.CR_SERVER_LOST, "Lost connection to MySQL server during query")
  1039 +pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')
  1040 +
  1041 +
  1042 + </pre>
  1043 + </div>
  1044 + <!--css div popup end-->
  1045 +
  1046 + </td>
  1047 +</tr>
  1048 +
  1049 +<tr class='passClass'>
  1050 + <td>region_grade_school.GetCities</td>
  1051 + <td>1</td>
  1052 + <td>1</td>
  1053 + <td>0</td>
  1054 + <td>0</td>
  1055 + <td><a href="javascript:showClassDetail('c27',1)">Detail</a></td>
  1056 +</tr>
  1057 +
  1058 +<tr id='pt27.1' class='hiddenRow'>
  1059 + <td class='none'><div class='testcase'>test_getCities_success</div></td>
  1060 + <td colspan='5' align='center'>
  1061 +
  1062 + <!--css div popup start-->
  1063 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt27.1')" >
  1064 + pass</a>
  1065 +
  1066 + <div id='div_pt27.1' class="popup_window">
  1067 + <div style='text-align: right; color:red;cursor:pointer'>
  1068 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt27.1').style.display = 'none' " >
  1069 + [x]</a>
  1070 + </div>
  1071 + <pre>
  1072 +
  1073 +pt27.1:
  1074 +
  1075 + </pre>
  1076 + </div>
  1077 + <!--css div popup end-->
  1078 +
  1079 + </td>
  1080 +</tr>
  1081 +
  1082 +<tr class='passClass'>
  1083 + <td>region_grade_school.GetCounties</td>
  1084 + <td>1</td>
  1085 + <td>1</td>
  1086 + <td>0</td>
  1087 + <td>0</td>
  1088 + <td><a href="javascript:showClassDetail('c28',1)">Detail</a></td>
  1089 +</tr>
  1090 +
  1091 +<tr id='pt28.1' class='hiddenRow'>
  1092 + <td class='none'><div class='testcase'>test_getCounties_success</div></td>
  1093 + <td colspan='5' align='center'>
  1094 +
  1095 + <!--css div popup start-->
  1096 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt28.1')" >
  1097 + pass</a>
  1098 +
  1099 + <div id='div_pt28.1' class="popup_window">
  1100 + <div style='text-align: right; color:red;cursor:pointer'>
  1101 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt28.1').style.display = 'none' " >
  1102 + [x]</a>
  1103 + </div>
  1104 + <pre>
  1105 +
  1106 +pt28.1:
  1107 +
  1108 + </pre>
  1109 + </div>
  1110 + <!--css div popup end-->
  1111 +
  1112 + </td>
  1113 +</tr>
  1114 +
  1115 +<tr class='passClass'>
  1116 + <td>region_grade_school.GetGrades</td>
  1117 + <td>1</td>
  1118 + <td>1</td>
  1119 + <td>0</td>
  1120 + <td>0</td>
  1121 + <td><a href="javascript:showClassDetail('c29',1)">Detail</a></td>
  1122 +</tr>
  1123 +
  1124 +<tr id='pt29.1' class='hiddenRow'>
  1125 + <td class='none'><div class='testcase'>test_getGrades_success</div></td>
  1126 + <td colspan='5' align='center'>
  1127 +
  1128 + <!--css div popup start-->
  1129 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt29.1')" >
  1130 + pass</a>
  1131 +
  1132 + <div id='div_pt29.1' class="popup_window">
  1133 + <div style='text-align: right; color:red;cursor:pointer'>
  1134 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt29.1').style.display = 'none' " >
  1135 + [x]</a>
  1136 + </div>
  1137 + <pre>
  1138 +
  1139 +pt29.1:
  1140 +
  1141 + </pre>
  1142 + </div>
  1143 + <!--css div popup end-->
  1144 +
  1145 + </td>
  1146 +</tr>
  1147 +
  1148 +<tr class='passClass'>
  1149 + <td>region_grade_school.GetProvince</td>
  1150 + <td>1</td>
  1151 + <td>1</td>
  1152 + <td>0</td>
  1153 + <td>0</td>
  1154 + <td><a href="javascript:showClassDetail('c30',1)">Detail</a></td>
  1155 +</tr>
  1156 +
  1157 +<tr id='pt30.1' class='hiddenRow'>
  1158 + <td class='none'><div class='testcase'>test_getProvince_success</div></td>
  1159 + <td colspan='5' align='center'>
  1160 +
  1161 + <!--css div popup start-->
  1162 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt30.1')" >
  1163 + pass</a>
  1164 +
  1165 + <div id='div_pt30.1' class="popup_window">
  1166 + <div style='text-align: right; color:red;cursor:pointer'>
  1167 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt30.1').style.display = 'none' " >
  1168 + [x]</a>
  1169 + </div>
  1170 + <pre>
  1171 +
  1172 +pt30.1:
  1173 +
  1174 + </pre>
  1175 + </div>
  1176 + <!--css div popup end-->
  1177 +
  1178 + </td>
  1179 +</tr>
  1180 +
  1181 +<tr class='passClass'>
  1182 + <td>region_grade_school.GetSchools</td>
  1183 + <td>1</td>
  1184 + <td>1</td>
  1185 + <td>0</td>
  1186 + <td>0</td>
  1187 + <td><a href="javascript:showClassDetail('c31',1)">Detail</a></td>
  1188 +</tr>
  1189 +
  1190 +<tr id='pt31.1' class='hiddenRow'>
  1191 + <td class='none'><div class='testcase'>test_getSchools_success</div></td>
  1192 + <td colspan='5' align='center'>
  1193 +
  1194 + <!--css div popup start-->
  1195 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt31.1')" >
  1196 + pass</a>
  1197 +
  1198 + <div id='div_pt31.1' class="popup_window">
  1199 + <div style='text-align: right; color:red;cursor:pointer'>
  1200 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt31.1').style.display = 'none' " >
  1201 + [x]</a>
  1202 + </div>
  1203 + <pre>
  1204 +
  1205 +pt31.1:
  1206 +
  1207 + </pre>
  1208 + </div>
  1209 + <!--css div popup end-->
  1210 +
  1211 + </td>
  1212 +</tr>
  1213 +
  1214 +<tr class='errorClass'>
  1215 + <td>register.AddFeedBack</td>
  1216 + <td>1</td>
  1217 + <td>0</td>
  1218 + <td>0</td>
  1219 + <td>1</td>
  1220 + <td><a href="javascript:showClassDetail('c32',1)">Detail</a></td>
  1221 +</tr>
  1222 +
  1223 +<tr id='ft32.1' class='none'>
  1224 + <td class='errorCase'><div class='testcase'>test_AddFeedBack_success</div></td>
  1225 + <td colspan='5' align='center'>
  1226 +
  1227 + <!--css div popup start-->
  1228 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft32.1')" >
  1229 + error</a>
  1230 +
  1231 + <div id='div_ft32.1' class="popup_window">
  1232 + <div style='text-align: right; color:red;cursor:pointer'>
  1233 + <a onfocus='this.blur();' onclick="document.getElementById('div_ft32.1').style.display = 'none' " >
  1234 + [x]</a>
  1235 + </div>
  1236 + <pre>
  1237 +
  1238 +ft32.1: Traceback (most recent call last):
  1239 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/register.py", line 213, in test_AddFeedBack_success
  1240 + self.assertTrue(db_test.select_('acornuser.feedback', select) &gt; 0, 'AddFeedBack data insert Error')
  1241 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1242 + cursor.execute(sql)
  1243 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1244 + result = self._query(query)
  1245 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1246 + conn.query(q)
  1247 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 856, in query
  1248 + self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  1249 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1057, in _read_query_result
  1250 + result.read()
  1251 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1340, in read
  1252 + first_packet = self.connection._read_packet()
  1253 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 987, in _read_packet
  1254 + packet_header = self._read_bytes(4)
  1255 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1033, in _read_bytes
  1256 + CR.CR_SERVER_LOST, "Lost connection to MySQL server during query")
  1257 +pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')
  1258 +Traceback (most recent call last):
  1259 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/register.py", line 213, in test_AddFeedBack_success
  1260 + self.assertTrue(db_test.select_('acornuser.feedback', select) &gt; 0, 'AddFeedBack data insert Error')
  1261 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1262 + cursor.execute(sql)
  1263 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1264 + result = self._query(query)
  1265 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1266 + conn.query(q)
  1267 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 856, in query
  1268 + self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  1269 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1057, in _read_query_result
  1270 + result.read()
  1271 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1340, in read
  1272 + first_packet = self.connection._read_packet()
  1273 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 987, in _read_packet
  1274 + packet_header = self._read_bytes(4)
  1275 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1033, in _read_bytes
  1276 + CR.CR_SERVER_LOST, "Lost connection to MySQL server during query")
  1277 +pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')
  1278 +
  1279 +
  1280 + </pre>
  1281 + </div>
  1282 + <!--css div popup end-->
  1283 +
  1284 + </td>
  1285 +</tr>
  1286 +
  1287 +<tr class='passClass'>
  1288 + <td>register.GetAuthCode</td>
  1289 + <td>1</td>
  1290 + <td>1</td>
  1291 + <td>0</td>
  1292 + <td>0</td>
  1293 + <td><a href="javascript:showClassDetail('c33',1)">Detail</a></td>
  1294 +</tr>
  1295 +
  1296 +<tr id='pt33.1' class='hiddenRow'>
  1297 + <td class='none'><div class='testcase'>test_getAuthCode_success</div></td>
  1298 + <td colspan='5' align='center'>
  1299 +
  1300 + <!--css div popup start-->
  1301 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt33.1')" >
  1302 + pass</a>
  1303 +
  1304 + <div id='div_pt33.1' class="popup_window">
  1305 + <div style='text-align: right; color:red;cursor:pointer'>
  1306 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt33.1').style.display = 'none' " >
  1307 + [x]</a>
  1308 + </div>
  1309 + <pre>
  1310 +
  1311 +pt33.1:
  1312 +
  1313 + </pre>
  1314 + </div>
  1315 + <!--css div popup end-->
  1316 +
  1317 + </td>
  1318 +</tr>
  1319 +
  1320 +<tr class='passClass'>
  1321 + <td>register.GetRecentVideo</td>
  1322 + <td>2</td>
  1323 + <td>2</td>
  1324 + <td>0</td>
  1325 + <td>0</td>
  1326 + <td><a href="javascript:showClassDetail('c34',2)">Detail</a></td>
  1327 +</tr>
  1328 +
  1329 +<tr id='pt34.1' class='hiddenRow'>
  1330 + <td class='none'><div class='testcase'>test_GetRecentVideo_noVideo_success</div></td>
  1331 + <td colspan='5' align='center'>pass</td>
  1332 +</tr>
  1333 +
  1334 +<tr id='pt34.2' class='hiddenRow'>
  1335 + <td class='none'><div class='testcase'>test_GetRecentVideo_success</div></td>
  1336 + <td colspan='5' align='center'>pass</td>
  1337 +</tr>
  1338 +
  1339 +<tr class='passClass'>
  1340 + <td>register.PhoneUsedCheck</td>
  1341 + <td>2</td>
  1342 + <td>2</td>
  1343 + <td>0</td>
  1344 + <td>0</td>
  1345 + <td><a href="javascript:showClassDetail('c35',2)">Detail</a></td>
  1346 +</tr>
  1347 +
  1348 +<tr id='pt35.1' class='hiddenRow'>
  1349 + <td class='none'><div class='testcase'>test_phone_unused</div></td>
  1350 + <td colspan='5' align='center'>
  1351 +
  1352 + <!--css div popup start-->
  1353 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt35.1')" >
  1354 + pass</a>
  1355 +
  1356 + <div id='div_pt35.1' class="popup_window">
  1357 + <div style='text-align: right; color:red;cursor:pointer'>
  1358 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt35.1').style.display = 'none' " >
  1359 + [x]</a>
  1360 + </div>
  1361 + <pre>
  1362 +
  1363 +pt35.1:
  1364 +
  1365 + </pre>
  1366 + </div>
  1367 + <!--css div popup end-->
  1368 +
  1369 + </td>
  1370 +</tr>
  1371 +
  1372 +<tr id='pt35.2' class='hiddenRow'>
  1373 + <td class='none'><div class='testcase'>test_phone_used</div></td>
  1374 + <td colspan='5' align='center'>
  1375 +
  1376 + <!--css div popup start-->
  1377 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt35.2')" >
  1378 + pass</a>
  1379 +
  1380 + <div id='div_pt35.2' class="popup_window">
  1381 + <div style='text-align: right; color:red;cursor:pointer'>
  1382 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt35.2').style.display = 'none' " >
  1383 + [x]</a>
  1384 + </div>
  1385 + <pre>
  1386 +
  1387 +pt35.2:
  1388 +
  1389 + </pre>
  1390 + </div>
  1391 + <!--css div popup end-->
  1392 +
  1393 + </td>
  1394 +</tr>
  1395 +
  1396 +<tr class='passClass'>
  1397 + <td>register.RegisterExtrainfoCheck</td>
  1398 + <td>2</td>
  1399 + <td>2</td>
  1400 + <td>0</td>
  1401 + <td>0</td>
  1402 + <td><a href="javascript:showClassDetail('c36',2)">Detail</a></td>
  1403 +</tr>
  1404 +
  1405 +<tr id='pt36.1' class='hiddenRow'>
  1406 + <td class='none'><div class='testcase'>test_checkRegisterExtrainfo_Complete_success</div></td>
  1407 + <td colspan='5' align='center'>pass</td>
  1408 +</tr>
  1409 +
  1410 +<tr id='pt36.2' class='hiddenRow'>
  1411 + <td class='none'><div class='testcase'>test_checkRegisterExtrainfo_inComplete_success</div></td>
  1412 + <td colspan='5' align='center'>pass</td>
  1413 +</tr>
  1414 +
  1415 +<tr class='errorClass'>
  1416 + <td>register.RegisterExtrainfoSubmit</td>
  1417 + <td>1</td>
  1418 + <td>0</td>
  1419 + <td>0</td>
  1420 + <td>1</td>
  1421 + <td><a href="javascript:showClassDetail('c37',1)">Detail</a></td>
  1422 +</tr>
  1423 +
  1424 +<tr id='ft37.1' class='none'>
  1425 + <td class='errorCase'><div class='testcase'>test_RegisterExtrainfoSubmit_success</div></td>
  1426 + <td colspan='5' align='center'>
  1427 +
  1428 + <!--css div popup start-->
  1429 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft37.1')" >
  1430 + error</a>
  1431 +
  1432 + <div id='div_ft37.1' class="popup_window">
  1433 + <div style='text-align: right; color:red;cursor:pointer'>
  1434 + <a onfocus='this.blur();' onclick="document.getElementById('div_ft37.1').style.display = 'none' " >
  1435 + [x]</a>
  1436 + </div>
  1437 + <pre>
  1438 +
  1439 +ft37.1: Traceback (most recent call last):
  1440 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/register.py", line 143, in test_RegisterExtrainfoSubmit_success
  1441 + self.assertEqual(db_test.select_('acornuser.acorn_user', where_1), 1, 'RegisterExtrainfoSubmit Error')
  1442 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1443 + cursor.execute(sql)
  1444 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1445 + result = self._query(query)
  1446 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1447 + conn.query(q)
  1448 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 855, in query
  1449 + self._execute_command(COMMAND.COM_QUERY, sql)
  1450 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1071, in _execute_command
  1451 + raise err.InterfaceError("(0, '')")
  1452 +pymysql.err.InterfaceError: (0, '')
  1453 +Traceback (most recent call last):
  1454 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/register.py", line 143, in test_RegisterExtrainfoSubmit_success
  1455 + self.assertEqual(db_test.select_('acornuser.acorn_user', where_1), 1, 'RegisterExtrainfoSubmit Error')
  1456 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1457 + cursor.execute(sql)
  1458 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1459 + result = self._query(query)
  1460 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1461 + conn.query(q)
  1462 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 855, in query
  1463 + self._execute_command(COMMAND.COM_QUERY, sql)
  1464 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1071, in _execute_command
  1465 + raise err.InterfaceError("(0, '')")
  1466 +pymysql.err.InterfaceError: (0, '')
  1467 +
  1468 +
  1469 + </pre>
  1470 + </div>
  1471 + <!--css div popup end-->
  1472 +
  1473 + </td>
  1474 +</tr>
  1475 +
  1476 +<tr class='passClass'>
  1477 + <td>register.SignIn</td>
  1478 + <td>1</td>
  1479 + <td>1</td>
  1480 + <td>0</td>
  1481 + <td>0</td>
  1482 + <td><a href="javascript:showClassDetail('c38',1)">Detail</a></td>
  1483 +</tr>
  1484 +
  1485 +<tr id='pt38.1' class='hiddenRow'>
  1486 + <td class='none'><div class='testcase'>test_signIn_success</div></td>
  1487 + <td colspan='5' align='center'>
  1488 +
  1489 + <!--css div popup start-->
  1490 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt38.1')" >
  1491 + pass</a>
  1492 +
  1493 + <div id='div_pt38.1' class="popup_window">
  1494 + <div style='text-align: right; color:red;cursor:pointer'>
  1495 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt38.1').style.display = 'none' " >
  1496 + [x]</a>
  1497 + </div>
  1498 + <pre>
  1499 +
  1500 +pt38.1:
  1501 +
  1502 + </pre>
  1503 + </div>
  1504 + <!--css div popup end-->
  1505 +
  1506 + </td>
  1507 +</tr>
  1508 +
  1509 +<tr class='passClass'>
  1510 + <td>register.UpdateUserNameByUserId</td>
  1511 + <td>2</td>
  1512 + <td>2</td>
  1513 + <td>0</td>
  1514 + <td>0</td>
  1515 + <td><a href="javascript:showClassDetail('c39',2)">Detail</a></td>
  1516 +</tr>
  1517 +
  1518 +<tr id='pt39.1' class='hiddenRow'>
  1519 + <td class='none'><div class='testcase'>test_UpdateUserNameByUserId_phoneExists_success</div></td>
  1520 + <td colspan='5' align='center'>
  1521 +
  1522 + <!--css div popup start-->
  1523 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt39.1')" >
  1524 + pass</a>
  1525 +
  1526 + <div id='div_pt39.1' class="popup_window">
  1527 + <div style='text-align: right; color:red;cursor:pointer'>
  1528 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt39.1').style.display = 'none' " >
  1529 + [x]</a>
  1530 + </div>
  1531 + <pre>
  1532 +
  1533 +pt39.1:
  1534 +
  1535 + </pre>
  1536 + </div>
  1537 + <!--css div popup end-->
  1538 +
  1539 + </td>
  1540 +</tr>
  1541 +
  1542 +<tr id='pt39.2' class='hiddenRow'>
  1543 + <td class='none'><div class='testcase'>test_UpdateUserNameByUserId_success</div></td>
  1544 + <td colspan='5' align='center'>
  1545 +
  1546 + <!--css div popup start-->
  1547 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt39.2')" >
  1548 + pass</a>
  1549 +
  1550 + <div id='div_pt39.2' class="popup_window">
  1551 + <div style='text-align: right; color:red;cursor:pointer'>
  1552 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt39.2').style.display = 'none' " >
  1553 + [x]</a>
  1554 + </div>
  1555 + <pre>
  1556 +
  1557 +pt39.2:
  1558 +
  1559 + </pre>
  1560 + </div>
  1561 + <!--css div popup end-->
  1562 +
  1563 + </td>
  1564 +</tr>
  1565 +
  1566 +<tr class='errorClass'>
  1567 + <td>sub_account.AddSubAccount</td>
  1568 + <td>1</td>
  1569 + <td>0</td>
  1570 + <td>0</td>
  1571 + <td>1</td>
  1572 + <td><a href="javascript:showClassDetail('c40',1)">Detail</a></td>
  1573 +</tr>
  1574 +
  1575 +<tr id='ft40.1' class='none'>
  1576 + <td class='errorCase'><div class='testcase'>test_addSubAccount_success</div></td>
  1577 + <td colspan='5' align='center'>
  1578 +
  1579 + <!--css div popup start-->
  1580 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft40.1')" >
  1581 + error</a>
  1582 +
  1583 + <div id='div_ft40.1' class="popup_window">
  1584 + <div style='text-align: right; color:red;cursor:pointer'>
  1585 + <a onfocus='this.blur();' onclick="document.getElementById('div_ft40.1').style.display = 'none' " >
  1586 + [x]</a>
  1587 + </div>
  1588 + <pre>
  1589 +
  1590 +ft40.1: Traceback (most recent call last):
  1591 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/sub_account.py", line 36, in test_addSubAccount_success
  1592 + self.assertEqual(db_test.select_('acornuser.child_user', {'parent_id': Data.PARENT_ID}), 1, 'addSubAccount Error')
  1593 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1594 + cursor.execute(sql)
  1595 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1596 + result = self._query(query)
  1597 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1598 + conn.query(q)
  1599 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 856, in query
  1600 + self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  1601 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1057, in _read_query_result
  1602 + result.read()
  1603 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1340, in read
  1604 + first_packet = self.connection._read_packet()
  1605 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 987, in _read_packet
  1606 + packet_header = self._read_bytes(4)
  1607 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1033, in _read_bytes
  1608 + CR.CR_SERVER_LOST, "Lost connection to MySQL server during query")
  1609 +pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')
  1610 +Traceback (most recent call last):
  1611 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/sub_account.py", line 36, in test_addSubAccount_success
  1612 + self.assertEqual(db_test.select_('acornuser.child_user', {'parent_id': Data.PARENT_ID}), 1, 'addSubAccount Error')
  1613 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1614 + cursor.execute(sql)
  1615 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1616 + result = self._query(query)
  1617 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1618 + conn.query(q)
  1619 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 856, in query
  1620 + self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  1621 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1057, in _read_query_result
  1622 + result.read()
  1623 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1340, in read
  1624 + first_packet = self.connection._read_packet()
  1625 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 987, in _read_packet
  1626 + packet_header = self._read_bytes(4)
  1627 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1033, in _read_bytes
  1628 + CR.CR_SERVER_LOST, "Lost connection to MySQL server during query")
  1629 +pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')
  1630 +
  1631 +
  1632 + </pre>
  1633 + </div>
  1634 + <!--css div popup end-->
  1635 +
  1636 + </td>
  1637 +</tr>
  1638 +
  1639 +<tr class='errorClass'>
  1640 + <td>sub_account.DelSubAccount</td>
  1641 + <td>1</td>
  1642 + <td>0</td>
  1643 + <td>0</td>
  1644 + <td>1</td>
  1645 + <td><a href="javascript:showClassDetail('c41',1)">Detail</a></td>
  1646 +</tr>
  1647 +
  1648 +<tr id='ft41.1' class='none'>
  1649 + <td class='errorCase'><div class='testcase'>test_delSubAccount_success</div></td>
  1650 + <td colspan='5' align='center'>
  1651 +
  1652 + <!--css div popup start-->
  1653 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft41.1')" >
  1654 + error</a>
  1655 +
  1656 + <div id='div_ft41.1' class="popup_window">
  1657 + <div style='text-align: right; color:red;cursor:pointer'>
  1658 + <a onfocus='this.blur();' onclick="document.getElementById('div_ft41.1').style.display = 'none' " >
  1659 + [x]</a>
  1660 + </div>
  1661 + <pre>
  1662 +
  1663 +ft41.1: Traceback (most recent call last):
  1664 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/sub_account.py", line 76, in test_delSubAccount_success
  1665 + self.assertEqual(db_test.select_('acornuser.child_user', {'subAccountId': self.subAccount}), 0, 'delSubAccount Error')
  1666 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1667 + cursor.execute(sql)
  1668 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1669 + result = self._query(query)
  1670 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1671 + conn.query(q)
  1672 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 855, in query
  1673 + self._execute_command(COMMAND.COM_QUERY, sql)
  1674 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1071, in _execute_command
  1675 + raise err.InterfaceError("(0, '')")
  1676 +pymysql.err.InterfaceError: (0, '')
  1677 +Traceback (most recent call last):
  1678 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/sub_account.py", line 76, in test_delSubAccount_success
  1679 + self.assertEqual(db_test.select_('acornuser.child_user', {'subAccountId': self.subAccount}), 0, 'delSubAccount Error')
  1680 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1681 + cursor.execute(sql)
  1682 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1683 + result = self._query(query)
  1684 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1685 + conn.query(q)
  1686 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 855, in query
  1687 + self._execute_command(COMMAND.COM_QUERY, sql)
  1688 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1071, in _execute_command
  1689 + raise err.InterfaceError("(0, '')")
  1690 +pymysql.err.InterfaceError: (0, '')
  1691 +
  1692 +
  1693 + </pre>
  1694 + </div>
  1695 + <!--css div popup end-->
  1696 +
  1697 + </td>
  1698 +</tr>
  1699 +
  1700 +<tr class='passClass'>
  1701 + <td>sub_account.GetSubAccount</td>
  1702 + <td>1</td>
  1703 + <td>1</td>
  1704 + <td>0</td>
  1705 + <td>0</td>
  1706 + <td><a href="javascript:showClassDetail('c42',1)">Detail</a></td>
  1707 +</tr>
  1708 +
  1709 +<tr id='pt42.1' class='hiddenRow'>
  1710 + <td class='none'><div class='testcase'>test_getSubAccount_success</div></td>
  1711 + <td colspan='5' align='center'>
  1712 +
  1713 + <!--css div popup start-->
  1714 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt42.1')" >
  1715 + pass</a>
  1716 +
  1717 + <div id='div_pt42.1' class="popup_window">
  1718 + <div style='text-align: right; color:red;cursor:pointer'>
  1719 + <a onfocus='this.blur();' onclick="document.getElementById('div_pt42.1').style.display = 'none' " >
  1720 + [x]</a>
  1721 + </div>
  1722 + <pre>
  1723 +
  1724 +pt42.1:
  1725 +
  1726 + </pre>
  1727 + </div>
  1728 + <!--css div popup end-->
  1729 +
  1730 + </td>
  1731 +</tr>
  1732 +
  1733 +<tr class='errorClass'>
  1734 + <td>sub_account.SwitchAccounts</td>
  1735 + <td>2</td>
  1736 + <td>0</td>
  1737 + <td>0</td>
  1738 + <td>2</td>
  1739 + <td><a href="javascript:showClassDetail('c43',2)">Detail</a></td>
  1740 +</tr>
  1741 +
  1742 +<tr id='ft43.1' class='none'>
  1743 + <td class='errorCase'><div class='testcase'>test_swichToParentAccount_success</div></td>
  1744 + <td colspan='5' align='center'>
  1745 +
  1746 + <!--css div popup start-->
  1747 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft43.1')" >
  1748 + error</a>
  1749 +
  1750 + <div id='div_ft43.1' class="popup_window">
  1751 + <div style='text-align: right; color:red;cursor:pointer'>
  1752 + <a onfocus='this.blur();' onclick="document.getElementById('div_ft43.1').style.display = 'none' " >
  1753 + [x]</a>
  1754 + </div>
  1755 + <pre>
  1756 +
  1757 +ft43.1: Traceback (most recent call last):
  1758 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/sub_account.py", line 112, in test_swichToParentAccount_success
  1759 + self.assertEqual(db_test.select_('acornuser.acorn_user_status', where_data), 1, 'swichToParentAccount Error')
  1760 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1761 + cursor.execute(sql)
  1762 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1763 + result = self._query(query)
  1764 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1765 + conn.query(q)
  1766 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 855, in query
  1767 + self._execute_command(COMMAND.COM_QUERY, sql)
  1768 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1071, in _execute_command
  1769 + raise err.InterfaceError("(0, '')")
  1770 +pymysql.err.InterfaceError: (0, '')
  1771 +Traceback (most recent call last):
  1772 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/sub_account.py", line 112, in test_swichToParentAccount_success
  1773 + self.assertEqual(db_test.select_('acornuser.acorn_user_status', where_data), 1, 'swichToParentAccount Error')
  1774 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1775 + cursor.execute(sql)
  1776 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1777 + result = self._query(query)
  1778 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1779 + conn.query(q)
  1780 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 855, in query
  1781 + self._execute_command(COMMAND.COM_QUERY, sql)
  1782 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1071, in _execute_command
  1783 + raise err.InterfaceError("(0, '')")
  1784 +pymysql.err.InterfaceError: (0, '')
  1785 +
  1786 +
  1787 + </pre>
  1788 + </div>
  1789 + <!--css div popup end-->
  1790 +
  1791 + </td>
  1792 +</tr>
  1793 +
  1794 +<tr id='ft43.2' class='none'>
  1795 + <td class='errorCase'><div class='testcase'>test_swichToSubAccount_success</div></td>
  1796 + <td colspan='5' align='center'>
  1797 +
  1798 + <!--css div popup start-->
  1799 + <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft43.2')" >
  1800 + error</a>
  1801 +
  1802 + <div id='div_ft43.2' class="popup_window">
  1803 + <div style='text-align: right; color:red;cursor:pointer'>
  1804 + <a onfocus='this.blur();' onclick="document.getElementById('div_ft43.2').style.display = 'none' " >
  1805 + [x]</a>
  1806 + </div>
  1807 + <pre>
  1808 +
  1809 +ft43.2: Traceback (most recent call last):
  1810 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/sub_account.py", line 99, in test_swichToSubAccount_success
  1811 + self.assertEqual(db_test.select_('acornuser.child_user', where_data), 1, 'swichToSubAccount Error')
  1812 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1813 + cursor.execute(sql)
  1814 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1815 + result = self._query(query)
  1816 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1817 + conn.query(q)
  1818 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 855, in query
  1819 + self._execute_command(COMMAND.COM_QUERY, sql)
  1820 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1071, in _execute_command
  1821 + raise err.InterfaceError("(0, '')")
  1822 +pymysql.err.InterfaceError: (0, '')
  1823 +Traceback (most recent call last):
  1824 + File "/Users/shaozl/PycharmProjects/apiTest/test_cases/sub_account.py", line 99, in test_swichToSubAccount_success
  1825 + self.assertEqual(db_test.select_('acornuser.child_user', where_data), 1, 'swichToSubAccount Error')
  1826 + File "/Users/shaozl/PycharmProjects/apiTest/data_fixture/mysql_db.py", line 51, in select_
  1827 + cursor.execute(sql)
  1828 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 166, in execute
  1829 + result = self._query(query)
  1830 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/cursors.py", line 322, in _query
  1831 + conn.query(q)
  1832 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 855, in query
  1833 + self._execute_command(COMMAND.COM_QUERY, sql)
  1834 + File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 1071, in _execute_command
  1835 + raise err.InterfaceError("(0, '')")
  1836 +pymysql.err.InterfaceError: (0, '')
  1837 +
  1838 +
  1839 + </pre>
  1840 + </div>
  1841 + <!--css div popup end-->
  1842 +
  1843 + </td>
  1844 +</tr>
  1845 +
  1846 +<tr class='passClass'>
  1847 + <td>subject_sync.ClassNameVideo</td>
  1848 + <td>2</td>
  1849 + <td>2</td>
  1850 + <td>0</td>
  1851 + <td>0</td>
  1852 + <td><a href="javascript:showClassDetail('c44',2)">Detail</a></td>
  1853 +</tr>
  1854 +
  1855 +<tr id='pt44.1' class='hiddenRow'>
  1856 + <td class='none'><div class='testcase'>test_ClassNameVideo_noData</div></td>
  1857 + <td colspan='5' align='center'>pass</td>
  1858 +</tr>
  1859 +
  1860 +<tr id='pt44.2' class='hiddenRow'>
  1861 + <td class='none'><div class='testcase'>test_ClassNameVideo_success</div></td>
  1862 + <td colspan='5' align='center'>pass</td>
  1863 +</tr>
  1864 +
  1865 +<tr class='passClass'>
  1866 + <td>subject_sync.ConsolidationExercise</td>
  1867 + <td>1</td>
  1868 + <td>1</td>
  1869 + <td>0</td>
  1870 + <td>0</td>
  1871 + <td><a href="javascript:showClassDetail('c45',1)">Detail</a></td>
  1872 +</tr>
  1873 +
  1874 +<tr id='pt45.1' class='hiddenRow'>
  1875 + <td class='none'><div class='testcase'>test_ConsolidationExercise_success</div></td>
  1876 + <td colspan='5' align='center'>pass</td>
  1877 +</tr>
  1878 +
  1879 +<tr class='passClass'>
  1880 + <td>subject_sync.PointVideo</td>
  1881 + <td>2</td>
  1882 + <td>2</td>
  1883 + <td>0</td>
  1884 + <td>0</td>
  1885 + <td><a href="javascript:showClassDetail('c46',2)">Detail</a></td>
  1886 +</tr>
  1887 +
  1888 +<tr id='pt46.1' class='hiddenRow'>
  1889 + <td class='none'><div class='testcase'>test_PointVideo_noData</div></td>
  1890 + <td colspan='5' align='center'>pass</td>
  1891 +</tr>
  1892 +
  1893 +<tr id='pt46.2' class='hiddenRow'>
  1894 + <td class='none'><div class='testcase'>test_PointVideo_success</div></td>
  1895 + <td colspan='5' align='center'>pass</td>
  1896 +</tr>
  1897 +
  1898 +<tr class='passClass'>
  1899 + <td>subject_sync.SubjectTest</td>
  1900 + <td>1</td>
  1901 + <td>1</td>
  1902 + <td>0</td>
  1903 + <td>0</td>
  1904 + <td><a href="javascript:showClassDetail('c47',1)">Detail</a></td>
  1905 +</tr>
  1906 +
  1907 +<tr id='pt47.1' class='hiddenRow'>
  1908 + <td class='none'><div class='testcase'>test_SubjectTest_success</div></td>
  1909 + <td colspan='5' align='center'>pass</td>
  1910 +</tr>
  1911 +
  1912 +<tr id='total_row'>
  1913 + <td>Total</td>
  1914 + <td>72</td>
  1915 + <td>64</td>
  1916 + <td>1</td>
  1917 + <td>7</td>
  1918 + <td>&nbsp;</td>
  1919 +</tr>
  1920 +</table>
  1921 +
  1922 +<div id='ending'>&nbsp;</div>
  1923 +
  1924 +</body>
  1925 +</html>
... ...
report/test_report.html
... ... @@ -189,8 +189,8 @@ function showOutput(id, name) {
189 189  
190 190 <div class='heading'>
191 191 <h1>Unit Test Report</h1>
192   -<p class='attribute'><strong>Start Time:</strong> 2018-01-12 15:33:19</p>
193   -<p class='attribute'><strong>Duration:</strong> 0:00:09.093848</p>
  192 +<p class='attribute'><strong>Start Time:</strong> 2018-01-15 17:44:45</p>
  193 +<p class='attribute'><strong>Duration:</strong> 0:00:12.495048</p>
194 194 <p class='attribute'><strong>Status:</strong> Pass 1</p>
195 195  
196 196 <p class='description'></p>
... ...
... ... @@ -12,15 +12,16 @@ from test_cases import parent_space
12 12 from test_cases import app_record_statistic
13 13 from test_cases import subject_sync
14 14  
  15 +
15 16 start_dir = './test_cases'
16 17 suite_run = unittest.TestSuite()
17   -#suite_run = unittest.defaultTestLoader.discover(start_dir=start_dir, pattern='subject_sync.py')
  18 +suite_run = unittest.defaultTestLoader.discover(start_dir=start_dir, pattern='*.py')
18 19  
19 20  
20   -suite_run.addTest(app_record_statistic.AppRecordEveryday('test_getAppRecordEveryday_success'))
  21 +#suite_run.addTest(app_record_statistic.AppRecordEveryday('test_getAppRecordEveryday_success'))
21 22  
22 23 #suite_run.addTest(app_record_statistic.AppRecordReset('test_AppRecordReset_success'))
23   -#suite_run.addTest(parent_space.ParentSpaceNewPassword('test_ParentSpaceNewPassword_success'))
  24 +#suite_run.addTest(parent_space.ParentSpaceChangePassword('test_ParentSpaceChangePassword_success'))
24 25 #suite_run.addTest(parent_space.ParentSpaceNewPassword('test_ParentSpaceNewPassword_authCodeError'))
25 26 runner = HTMLTestRunner.HTMLTestRunner(outputdir='report')
26 27  
... ...
test_cases/__pycache__/app_record_statistic.cpython-36.pyc
No preview for this file type
test_cases/__pycache__/parent_space.cpython-36.pyc
No preview for this file type
test_cases/__pycache__/personal_info.cpython-36.pyc
No preview for this file type
test_cases/__pycache__/press.cpython-36.pyc
No preview for this file type
test_cases/__pycache__/register.cpython-36.pyc
No preview for this file type
test_cases/__pycache__/sub_account.cpython-36.pyc
No preview for this file type
test_cases/__pycache__/subject_sync.cpython-36.pyc
No preview for this file type
test_cases/app_record_statistic.py
... ... @@ -10,7 +10,6 @@ from data_fixture.mysql_db import DB
10 10 import time
11 11 from datetime import date
12 12  
13   -db_test = DB()
14 13  
15 14  
16 15 #提交app使用记录
... ... @@ -38,7 +37,7 @@ class AppRecordSave(unittest.TestCase):
38 37 'user_id': Data.USER_ID,
39 38 'device_number': Data.DEVICE_NUMBER_CUS_BIND}
40 39 where_2 = " time_end >= {} ".format(send_time)
41   - self.assertTrue(db_test.select_('analytics.app_record', where, where_2) >= 1, 'test_AppRecordSave_success data Error')
  40 + self.assertTrue(CreateTestData.db_select('analytics.app_record', where, where_2) >= 1, 'test_AppRecordSave_success data Error')
42 41  
43 42  
44 43 # 按时间段获取app使用统计
... ... @@ -166,7 +165,7 @@ class AppRecordOneday(unittest.TestCase):
166 165 'user_id': Data.USER_ID,
167 166 'device_number': Data.DEVICE_NUMBER_CUS_BIND
168 167 }
169   - self.assertEqual(db_test.select_('analytics.app_record', where_1) , 1)
  168 + self.assertEqual(CreateTestData.db_select('analytics.app_record', where_1) , 1)
170 169 if category_id in study_category:
171 170 self.assertEqual(categoryType, 1)
172 171 if category_id in game_category:
... ... @@ -244,7 +243,7 @@ class AppRecordReset(unittest.TestCase):
244 243 where = {'device_number': Data.DEVICE_NUMBER_CUS_BIND,
245 244 'user_id': Data.USER_ID
246 245 }
247   - self.assertEqual(db_test.select_('analytics.app_record', where), 0)
  246 + self.assertEqual(CreateTestData.db_select('analytics.app_record', where), 0)
248 247  
249 248 def test_AppRecordReset_passwordError(self):
250 249 getData = {'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND,
... ...
test_cases/parent_space.py
... ... @@ -11,7 +11,6 @@ import uuid
11 11 import time
12 12  
13 13  
14   -db_test = DB()
15 14  
16 15 # 家长控制登录
17 16 class ParentSpaceLogin(unittest.TestCase):
... ... @@ -54,15 +53,15 @@ class ParentSpaceChangePassword(unittest.TestCase):
54 53 def test_ParentSpaceChangePassword_success(self):
55 54 headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': '*/*'}
56 55 postData = {'oldPass': self.oldPass,
57   - 'newPass': '111111',
  56 + 'newPass': '222222',
58 57 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND
59 58 }
60 59 r = requests.post(self.base_url, headers=headers, data=postData)
61 60 self.result = r.json()
62 61 self.assertEqual(self.result['status'], 1, 'ParentSpacehangePassword Error')
63   - where = {'password': '111111',
  62 + where = {'password': '222222',
64 63 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND }
65   - self.assertEqual(db_test.select_('acornuser.parents_space_pass', where), 1, 'ParentSpacehangePassword data Error')
  64 + self.assertEqual(CreateTestData.db_select('acornuser.parents_space_pass', where), 1, 'ParentSpacehangePassword data Error')
66 65  
67 66  
68 67 #家长控制忘记密码
... ... @@ -71,7 +70,7 @@ class ParentSpaceNewPassword(unittest.TestCase):
71 70 self.base_url = HOST_BOSS + '/parentsSpacePass/newpassword'
72 71 CreateTestData.pre_elecCard(Data.DEVICE_NUMBER_CUS_BIND)
73 72 sql = "SELECT customerPhone FROM acornuser.ozing_customermachine where deviceNumber = '{}'".format(Data.DEVICE_NUMBER_CUS_BIND)
74   - self.mobile = db_test.select(sql)[0]["customerPhone"].strip()
  73 + self.mobile = CreateTestData.db_select_bysql(sql)[0]["customerPhone"].strip()
75 74 self.auth = CreateTestData.fet_authCode(self.mobile)
76 75  
77 76 def tearDown(self):
... ... @@ -89,7 +88,7 @@ class ParentSpaceNewPassword(unittest.TestCase):
89 88 self.assertEqual(self.result['status'], 1, 'test_ParentSpaceNewPassword_success Error')
90 89 where = {'password': '111111',
91 90 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND }
92   - self.assertEqual(db_test.select_('acornuser.parents_space_pass', where), 1, 'ParentSpacehangePassword data Error')
  91 + self.assertEqual(CreateTestData.db_select('acornuser.parents_space_pass', where), 1, 'ParentSpacehangePassword data Error')
93 92  
94 93 def test_ParentSpaceNewPassword_authCodeError(self):
95 94 headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': '*/*'}
... ...
test_cases/personal_info.py
... ... @@ -5,12 +5,12 @@ import unittest
5 5 import requests
6 6 from data_fixture.config_data import HOST_BOSS
7 7 from data_fixture import config_data as Data
8   -from data_fixture import create_testdata
  8 +from data_fixture import create_testdata as CreateTestData
9 9 from data_fixture.mysql_db import DB
10 10 import os
11 11 import uuid
12 12  
13   -db_test = DB()
  13 +
14 14 current_dir = str(os.path.dirname(__file__))
15 15  
16 16 #获取个人信息
... ... @@ -18,7 +18,7 @@ class GetPersonalInfo(unittest.TestCase):
18 18 def setUp(self):
19 19 self.base_url = HOST_BOSS + "/personal/get"
20 20 self.subAccount = str(uuid.uuid4()).replace('-', '')
21   - create_testdata.pre_subAccount(Data.USER_ID, self.subAccount, 1)
  21 + CreateTestData.pre_subAccount(Data.USER_ID, self.subAccount, 1)
22 22  
23 23 def tearDown(self):
24 24 pass
... ... @@ -43,7 +43,7 @@ class UpdatePersonalInfo(unittest.TestCase):
43 43 def setUp(self):
44 44 self.base_url = HOST_BOSS + "/personal/update"
45 45 self.subAccount = str(uuid.uuid4()).replace('-', '')
46   - create_testdata.pre_subAccount(Data.PARENT_ID, self.subAccount, 1)
  46 + CreateTestData.pre_subAccount(Data.PARENT_ID, self.subAccount, 1)
47 47  
48 48 def tearDown(self):
49 49 pass
... ... @@ -70,9 +70,9 @@ class UpdatePersonalInfo(unittest.TestCase):
70 70 r = requests.post(self.base_url, headers=headers, data=postData)
71 71 self.result_1 = r.json()
72 72 self.assertEqual(self.result_1['status'], 1, 'UpdateParentInfo ERROR')
73   - self.assertTrue(db_test.select_('acornuser.acorn_user', where_data_1), 1)
74   - self.assertTrue(db_test.select_('acornuser.ozing_student', where_data_2), 1)
75   - self.assertTrue(db_test.select_('acornuser.acorn_user_extra', where_data_3), 1)
  73 + self.assertTrue(CreateTestData.db_select('acornuser.acorn_user', where_data_1), 1)
  74 + self.assertTrue(CreateTestData.db_select('acornuser.ozing_student', where_data_2), 1)
  75 + self.assertTrue(CreateTestData.db_select('acornuser.acorn_user_extra', where_data_3), 1)
76 76  
77 77  
78 78 def test_UpdateChildInfo_success(self):
... ... @@ -95,7 +95,7 @@ class UpdatePersonalInfo(unittest.TestCase):
95 95 r = requests.post(self.base_url, headers=headers, data=postData)
96 96 self.result_2 = r.json()
97 97 self.assertEqual(self.result_2['status'], 1, 'UpdateParentInfo ERROR')
98   - self.assertTrue(db_test.select_('acornuser.child_user', where_data_child))
  98 + self.assertTrue(CreateTestData.db_select('acornuser.child_user', where_data_child))
99 99  
100 100  
101 101 # 添加和修改个性签名
... ... @@ -103,9 +103,9 @@ class AddorUpdateSignature(unittest.TestCase):
103 103 def setUp(self):
104 104 self.base_url = HOST_BOSS + "/signature/addOrUpdateSignature"
105 105 self.subAccount = str(uuid.uuid4()).replace('-', '')
106   - create_testdata.pre_subAccount(Data.PARENT_ID, self.subAccount, 0)
107   - create_testdata.checkSignatureExists(Data.PARENT_ID, 1)
108   - create_testdata.checkSignatureExists(self.subAccount, 2)
  106 + CreateTestData.pre_subAccount(Data.PARENT_ID, self.subAccount, 0)
  107 + CreateTestData.checkSignatureExists(Data.PARENT_ID, 1)
  108 + CreateTestData.checkSignatureExists(self.subAccount, 2)
109 109  
110 110 def tearDown(self):
111 111 pass
... ... @@ -120,7 +120,7 @@ class AddorUpdateSignature(unittest.TestCase):
120 120 self.assertEqual(self.result_1['status'], 1, 'AddParentSignature ERROR')
121 121 where_1 = {'user_id':Data.PARENT_ID,
122 122 'signature':'who is the clever Polly 谁是聪明的鹦鹉'}
123   - self.assertEqual(db_test.select_('acornuser.acorn_user_extra', where_1), 1)
  123 + self.assertEqual(CreateTestData.db_select('acornuser.acorn_user_extra', where_1), 1)
124 124  
125 125 def test_UpdateParentSignature_success(self):
126 126 headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': '*/*'}
... ... @@ -132,7 +132,7 @@ class AddorUpdateSignature(unittest.TestCase):
132 132 self.assertEqual(self.result_2['status'], 1, 'UpdateParentSignature ERROR')
133 133 where_2 = {'user_id':Data.PARENT_ID,
134 134 'signature':'clever Polly 一只吵人的鹦鹉'}
135   - self.assertEqual(db_test.select_('acornuser.acorn_user_extra', where_2), 1, 'UpdateParentSignature ERROR')
  135 + self.assertEqual(CreateTestData.db_select('acornuser.acorn_user_extra', where_2), 1, 'UpdateParentSignature ERROR')
136 136  
137 137 def test_AddChildSignature_success(self):
138 138 headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': '*/*'}
... ... @@ -144,7 +144,7 @@ class AddorUpdateSignature(unittest.TestCase):
144 144 self.assertEqual(self.result_3['status'], 1, 'AddChildSignature ERROR')
145 145 where_1 = {'sub_account_id':self.subAccount,
146 146 'signature':'Polly can you spell its name 波利'}
147   - self.assertEqual(db_test.select_('acornuser.subAccount_user_extra', where_1), 1, 'AddChildSignature ERROR')
  147 + self.assertEqual(CreateTestData.db_select('acornuser.subAccount_user_extra', where_1), 1, 'AddChildSignature ERROR')
148 148  
149 149 def test_UpdateChildSignature_success(self):
150 150 headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': '*/*'}
... ... @@ -156,7 +156,7 @@ class AddorUpdateSignature(unittest.TestCase):
156 156 self.assertEqual(self.result_4['status'], 1, 'UPDATEChildSignature ERROR')
157 157 where_1 = {'sub_account_id':self.subAccount,
158 158 'signature':'波利 P-O-L-L-Y'}
159   - self.assertEqual(db_test.select_('acornuser.subAccount_user_extra', where_1), 1, 'UPDATEChildSignature ERROR')
  159 + self.assertEqual(CreateTestData.db_select('acornuser.subAccount_user_extra', where_1), 1, 'UPDATEChildSignature ERROR')
160 160  
161 161  
162 162 # 显示个性签名
... ... @@ -164,8 +164,8 @@ class GetSignature(unittest.TestCase):
164 164 def setUp(self):
165 165 self.base_url = HOST_BOSS + "/signature/info"
166 166 self.subAccount = str(uuid.uuid4()).replace('-', '')
167   - create_testdata.checkSignatureExists(Data.PARENT_ID, 1)
168   - create_testdata.checkSignatureExists(self.subAccount, 2)
  167 + CreateTestData.checkSignatureExists(Data.PARENT_ID, 1)
  168 + CreateTestData.checkSignatureExists(self.subAccount, 2)
169 169  
170 170 def tearDown(self):
171 171 pass
... ... @@ -190,7 +190,7 @@ class UpdatePortraitDefault(unittest.TestCase):
190 190 def setUp(self):
191 191 self.base_url = HOST_BOSS + "/profile/picture/default"
192 192 self.subAccount = str(uuid.uuid4()).replace('-', '')
193   - create_testdata.pre_subAccount(Data.PARENT_ID, self.subAccount, 0)
  193 + CreateTestData.pre_subAccount(Data.PARENT_ID, self.subAccount, 0)
194 194  
195 195 def tearDown(self):
196 196 pass
... ... @@ -204,7 +204,7 @@ class UpdatePortraitDefault(unittest.TestCase):
204 204 self.assertEqual(self.result_1['status'], 1, 'UpdateParentPortrait fail')
205 205 where = {'user_id': Data.PARENT_ID,
206 206 'portrait':'static/upload/boss_api/announcement/2017-08-29/61e8d8cf-651f-49c9-beb2-ff1387af390a.png'}
207   - self.assertEqual(db_test.select_('acornuser.ozing_student', where), 1, 'UpdateParentPortraitDefault fail')
  207 + self.assertEqual(CreateTestData.db_select('acornuser.ozing_student', where), 1, 'UpdateParentPortraitDefault fail')
208 208  
209 209 def test_UpdateChildPortraitDefault_success(self):
210 210 headers = {'Accept': '*/*', 'Content-Type':'application/x-www-form-urlencoded'}
... ... @@ -215,7 +215,7 @@ class UpdatePortraitDefault(unittest.TestCase):
215 215 self.assertEqual(self.result_2['status'], 1, 'UpdateChildPortrait fail')
216 216 where = {'subAccountId': self.subAccount,
217 217 'image': 'static/upload/boss_api/announcement/2017-08-29/61e8d8cf-651f-49c9-beb2-ff1387af390a.png'}
218   - self.assertEqual(db_test.select_('acornuser.child_user', where), 1, 'UpdateChildPortraitDefault fail')
  218 + self.assertEqual(CreateTestData.db_select('acornuser.child_user', where), 1, 'UpdateChildPortraitDefault fail')
219 219  
220 220  
221 221 #更新用户头像-- 上传文件
... ... @@ -227,7 +227,7 @@ class UpdatePortrait(unittest.TestCase):
227 227 self.img_1 = open(img_file_1, 'rb')
228 228 self.img_2 = open(img_file_2, 'rb')
229 229 self.subAccount = str(uuid.uuid4()).replace('-', '')
230   - create_testdata.pre_subAccount(Data.PARENT_ID, self.subAccount, 0)
  230 + CreateTestData.pre_subAccount(Data.PARENT_ID, self.subAccount, 0)
231 231  
232 232 def tearDown(self):
233 233 pass
... ...
test_cases/press.py
... ... @@ -8,7 +8,6 @@ from data_fixture import create_testdata as CreateTestData
8 8 from data_fixture import config_data as Data
9 9 from data_fixture.mysql_db import DB
10 10  
11   -db_test = DB()
12 11  
13 12  
14 13 # 获取教材版本列表
... ... @@ -85,7 +84,7 @@ class UpdateUserPressInfo(unittest.TestCase):
85 84 'math': '江苏科学技术出版社',
86 85 'history': '人民教育出版社'
87 86 }
88   - self.assertEqual(db_test.select_('acornuser.user_press', where), 1, 'UpdateUserPressInfo data Error')
  87 + self.assertEqual(CreateTestData.db_select('acornuser.user_press', where), 1, 'UpdateUserPressInfo data Error')
89 88  
90 89  
91 90  
... ...
test_cases/register.py
... ... @@ -9,7 +9,7 @@ from data_fixture import config_data as Data
9 9 from data_fixture.mysql_db import DB
10 10 import os
11 11  
12   -db_test = DB()
  12 +
13 13 current_dir = str(os.path.dirname(__file__))
14 14  
15 15 #手机号重复验证
... ... @@ -140,9 +140,9 @@ class RegisterExtrainfoSubmit(unittest.TestCase):
140 140 'english': '人民教育出版社',
141 141 'math': '人民教育出版社'
142 142 }
143   - self.assertEqual(db_test.select_('acornuser.acorn_user', where_1), 1, 'RegisterExtrainfoSubmit Error')
144   - self.assertEqual(db_test.select_('acornuser.ozing_student', where_2), 1, 'RegisterExtrainfoSubmit Error')
145   - self.assertEqual(db_test.select_('acornuser.user_press', where_3), 1, 'RegisterExtrainfoSubmit Error')
  143 + self.assertEqual(CreateTestData.db_select('acornuser.acorn_user', where_1), 1, 'RegisterExtrainfoSubmit Error')
  144 + self.assertEqual(CreateTestData.db_select('acornuser.ozing_student', where_2), 1, 'RegisterExtrainfoSubmit Error')
  145 + self.assertEqual(CreateTestData.db_select('acornuser.user_press', where_3), 1, 'RegisterExtrainfoSubmit Error')
146 146  
147 147  
148 148 #账户管理界面更换手机号绑定
... ... @@ -210,7 +210,7 @@ class AddFeedBack(unittest.TestCase):
210 210 'content': '11111feedback哦哦哦',
211 211 'contact': '00000000',
212 212 'feedtype': '个人中心'}
213   - self.assertTrue(db_test.select_('acornuser.feedback', select) > 0, 'AddFeedBack data insert Error')
  213 + self.assertTrue(CreateTestData.db_select('acornuser.feedback', select) > 0, 'AddFeedBack data insert Error')
214 214  
215 215  
216 216 # 获取最近观看视频列表
... ...
test_cases/sub_account.py
... ... @@ -9,7 +9,6 @@ from data_fixture import config_data as Data
9 9 from data_fixture.mysql_db import DB
10 10 import uuid
11 11  
12   -db_test = DB()
13 12  
14 13 #添加子账户
15 14 class AddSubAccount(unittest.TestCase):
... ... @@ -33,7 +32,7 @@ class AddSubAccount(unittest.TestCase):
33 32 }
34 33 r = requests.post(self.base_url, headers=headers, data=postData)
35 34 self.result = r.json()
36   - self.assertEqual(db_test.select_('acornuser.child_user', {'parent_id': Data.PARENT_ID}), 1, 'addSubAccount Error')
  35 + self.assertEqual(CreateTestData.db_select('acornuser.child_user', {'parent_id': Data.PARENT_ID}), 1, 'addSubAccount Error')
37 36 self.assertEqual(self.result['status'], 1, 'addSubAccount Error')
38 37  
39 38  
... ... @@ -73,7 +72,7 @@ class DelSubAccount(unittest.TestCase):
73 72 getData = {'subAccountId': self.subAccount}
74 73 r = requests.get(self.base_url, headers=headers, params=getData)
75 74 self.result = r.json()
76   - self.assertEqual(db_test.select_('acornuser.child_user', {'subAccountId': self.subAccount}), 0, 'delSubAccount Error')
  75 + self.assertEqual(CreateTestData.db_select('acornuser.child_user', {'subAccountId': self.subAccount}), 0, 'delSubAccount Error')
77 76 self.assertEqual(self.result['status'], 1, 'delSubAccount ERROR')
78 77  
79 78  
... ... @@ -96,7 +95,7 @@ class SwitchAccounts(unittest.TestCase):
96 95 r = requests.get(self.base_url, headers=headers, params=getData)
97 96 self.result = r.json()
98 97 where_data = {'parent_id': Data.PARENT_ID,'subAccountId': self.subAccount, 'status':1}
99   - self.assertEqual(db_test.select_('acornuser.child_user', where_data), 1, 'swichToSubAccount Error')
  98 + self.assertEqual(CreateTestData.db_select('acornuser.child_user', where_data), 1, 'swichToSubAccount Error')
100 99 self.assertEqual(self.result['status'], 1, 'swichToSubAccount ERROR')
101 100  
102 101 def test_swichToParentAccount_success(self):
... ... @@ -109,7 +108,7 @@ class SwitchAccounts(unittest.TestCase):
109 108 where_data = {'userId': Data.PARENT_ID,
110 109 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND,
111 110 'status': 1}
112   - self.assertEqual(db_test.select_('acornuser.acorn_user_status', where_data), 1, 'swichToParentAccount Error')
  111 + self.assertEqual(CreateTestData.db_select('acornuser.acorn_user_status', where_data), 1, 'swichToParentAccount Error')
113 112 self.assertEqual(self.result['status'], 1, 'swichToParentAccount ERROR')
114 113  
115 114  
... ...
test_cases/subject_sync.py
... ... @@ -9,7 +9,6 @@ from data_fixture import config_data as Data
9 9 from data_fixture.mysql_db import DB
10 10  
11 11  
12   -db_test = DB()
13 12  
14 13 #获取同步视频接口
15 14 class ClassNameVideo(unittest.TestCase):
... ... @@ -106,5 +105,23 @@ class ConsolidationExercise(unittest.TestCase):
106 105 self.assertTrue(len(self.result['data']) > 1)
107 106  
108 107  
  108 +#课程中心PK练习提交接口
  109 +class PKSubmitCheck(unittest.TestCase):
  110 + def setUp(self):
  111 + self.base_url = HOST_BOSS + '/submit/'
  112 +
  113 + def tearDown(self):
  114 + pass
  115 +
  116 + def test_PKSubmitCheck_success(self):
  117 + getData = {'subjectName': '数学',
  118 + 'gradeId': '10',
  119 + 'secondPoint': '二元一次方程||二元一次方程组的解',
  120 + 'textName': '二元一次方程组',
  121 + 'difficultyLevel': '基础卷'}
  122 + r = requests.get(self.base_url, params=getData)
  123 + self.result = r.json()
  124 + self.assertEqual(self.result['status'], 1, 'test_ConsolidationExercise_success Error')
  125 + self.assertTrue(len(self.result['data']) > 1)
109 126  
110 127  
... ...