|
30 | 30 | import unittest |
31 | 31 |
|
32 | 32 | sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) |
33 | | -from _testutils import bootstrap, set_dbms, reset_dbms |
| 33 | +from _testutils import bootstrap, set_dbms, reset_dbms, save_attrs, restore_attrs |
34 | 34 | bootstrap() |
35 | 35 |
|
36 | 36 | from lib.core.data import conf, kb |
@@ -94,9 +94,7 @@ def setUp(self): |
94 | 94 | self._scounters = kb.get("counters") |
95 | 95 | self._sinj_data = kb.injection.data |
96 | 96 | self._shashdb = conf.get("hashDB") |
97 | | - self._s_forge = agent.forgeUnionQuery |
98 | | - self._s_concat = agent.concatQuery |
99 | | - self._s_payload = agent.payload |
| 97 | + self._s_agent = save_attrs(agent, "forgeUnionQuery", "concatQuery", "payload") |
100 | 98 | self._s_escape = unescaper.escape |
101 | 99 |
|
102 | 100 | for k, v in _UU_CONF.items(): |
@@ -131,9 +129,7 @@ def tearDown(self): |
131 | 129 | kb.counters = self._scounters |
132 | 130 | kb.injection.data = self._sinj_data |
133 | 131 | conf.hashDB = self._shashdb |
134 | | - agent.forgeUnionQuery = self._s_forge |
135 | | - agent.concatQuery = self._s_concat |
136 | | - agent.payload = self._s_payload |
| 132 | + restore_attrs(self._s_agent) |
137 | 133 | unescaper.escape = self._s_escape |
138 | 134 |
|
139 | 135 | def _install_page(self, page): |
@@ -325,11 +321,8 @@ def setUp(self): |
325 | 321 | self._sinj_data = kb.injection.data |
326 | 322 | self._shashdb = conf.get("hashDB") |
327 | 323 | self._sbatch = conf.get("batch") |
328 | | - self._s_forge = agent.forgeUnionQuery |
329 | | - self._s_concat = agent.concatQuery |
330 | | - self._s_payload = agent.payload |
| 324 | + self._s_agent = save_attrs(agent, "forgeUnionQuery", "concatQuery", "payload", "_lastexpr") |
331 | 325 | self._s_escape = unescaper.escape |
332 | | - self._s_lastexpr = getattr(agent, "_lastexpr", None) |
333 | 326 | self._s_initTechnique = uu.initTechnique |
334 | 327 |
|
335 | 328 | for k, v in _UU_CONF_LIMIT.items(): |
@@ -372,11 +365,8 @@ def tearDown(self): |
372 | 365 | kb.counters = self._scounters |
373 | 366 | kb.injection.data = self._sinj_data |
374 | 367 | conf.hashDB = self._shashdb |
375 | | - agent.forgeUnionQuery = self._s_forge |
376 | | - agent.concatQuery = self._s_concat |
377 | | - agent.payload = self._s_payload |
| 368 | + restore_attrs(self._s_agent) |
378 | 369 | unescaper.escape = self._s_escape |
379 | | - agent._lastexpr = self._s_lastexpr |
380 | 370 | uu.initTechnique = self._s_initTechnique |
381 | 371 |
|
382 | 372 | if self._s_columns is None: |
@@ -500,10 +490,7 @@ def setUp(self): |
500 | 490 | self._shashdb = conf.get("hashDB") |
501 | 491 | self._sbatch = conf.get("batch") |
502 | 492 |
|
503 | | - self._s_prefix = agent.prefixQuery |
504 | | - self._s_suffix = agent.suffixQuery |
505 | | - self._s_payload = agent.payload |
506 | | - self._s_nullcast = agent.nullAndCastField |
| 493 | + self._s_agent = save_attrs(agent, "prefixQuery", "suffixQuery", "payload", "nullAndCastField") |
507 | 494 | self._s_escape = unescaper.escape |
508 | 495 |
|
509 | 496 | # restore thread state we touch |
@@ -557,10 +544,7 @@ def tearDown(self): |
557 | 544 | kb.injection.data = self._sinj_data |
558 | 545 | conf.hashDB = self._shashdb |
559 | 546 |
|
560 | | - agent.prefixQuery = self._s_prefix |
561 | | - agent.suffixQuery = self._s_suffix |
562 | | - agent.payload = self._s_payload |
563 | | - agent.nullAndCastField = self._s_nullcast |
| 547 | + restore_attrs(self._s_agent) |
564 | 548 | unescaper.escape = self._s_escape |
565 | 549 |
|
566 | 550 | td = getCurrentThreadData() |
|
0 commit comments