Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: sitescripts/filterhits/test/test_helpers.py

Issue 4615801646612480: Issue 395 - Filter hits statistics backend (Closed)
Left Patch Set: Added API tests, addressed comments and some other improvements. Created Feb. 28, 2015, 7:36 p.m.
Right Patch Set: Addressed further comments from Sebastian. Created April 2, 2015, 10:13 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Right: Side by side diff | Download
« no previous file with change/comment | « sitescripts/filterhits/test/log_tests.py ('k') | sitescripts/filterhits/web/__init__.py » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
(no file at all)
1 # coding: utf-8
2
3 # This file is part of the Adblock Plus web scripts,
4 # Copyright (C) 2006-2015 Eyeo GmbH
5 #
6 # Adblock Plus is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License version 3 as
8 # published by the Free Software Foundation.
9 #
10 # Adblock Plus is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
17
18 import tempfile
19 import shutil
20 import unittest
21
22 import MySQLdb
23
24 from sitescripts.filterhits import db
25 from sitescripts.utils import get_config
26
27 class FilterhitsTestCase(unittest.TestCase):
28 config = get_config()
29 _db = None
30 _live_config = {
31 "dbuser": config.get("filterhitstats", "dbuser"),
32 "dbpassword": config.get("filterhitstats", "dbpassword"),
33 "database": config.get("filterhitstats", "database"),
34 "log_dir": config.get("filterhitstats", "log_dir")
35 }
36 _test_config = {
37 "dbuser": config.get("filterhitstats", "test_dbuser"),
38 "dbpassword": config.get("filterhitstats", "test_dbpassword"),
39 "database": config.get("filterhitstats", "test_database")
40 }
41
42 def _clear_database(self):
43 db.write(self._db, (("DELETE FROM frequencies",), ("DELETE FROM filters",)))
44
45 @property
46 def db(self):
47 if (not self._db):
48 self._db = db.connect()
49 self._clear_database()
50 return self._db
51
52 def setUp(self):
53 # Set up a temporary log directory for testing
54 self.test_dir = tempfile.mkdtemp()
55 # Set up test config
56 for k, v in self._test_config.items():
57 self.config.set("filterhitstats", k, v)
58 self.config.set("filterhitstats", "log_dir", self.test_dir)
59
60 def tearDown(self):
61 # Clean the database and close our connection
62 if self._db:
63 self._clear_database()
64 self._db.close()
65 self._db = None
66 # Clean any generated logs
67 shutil.rmtree(self.test_dir, ignore_errors=True)
68 # Restore the configuration
69 for k, v in self._live_config.items():
70 self.config.set("filterhitstats", k, v)
LEFTRIGHT

Powered by Google App Engine
This is Rietveld