| #!/usr/bin/env python |
| |
| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this file, |
| # You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| import mozfile |
| import os |
| import shutil |
| import sqlite3 |
| import tempfile |
| import unittest |
| from mozprofile.permissions import Permissions |
| |
| class PermissionsTest(unittest.TestCase): |
| |
| locations = """http://mochi.test:8888 primary,privileged |
| http://127.0.0.1:80 noxul |
| http://127.0.0.1:8888 privileged |
| """ |
| |
| def setUp(self): |
| self.profile_dir = tempfile.mkdtemp() |
| self.locations_file = mozfile.NamedTemporaryFile() |
| self.locations_file.write(self.locations) |
| self.locations_file.flush() |
| |
| def tearDown(self): |
| if self.profile_dir: |
| shutil.rmtree(self.profile_dir) |
| if self.locations_file: |
| self.locations_file.close() |
| |
| def test_schema_version(self): |
| perms = Permissions(self.profile_dir, self.locations_file.name) |
| perms_db_filename = os.path.join(self.profile_dir, 'permissions.sqlite') |
| perms.write_db(self.locations_file) |
| |
| stmt = 'PRAGMA user_version;' |
| |
| con = sqlite3.connect(perms_db_filename) |
| cur = con.cursor() |
| cur.execute(stmt) |
| entries = cur.fetchall() |
| |
| schema_version = entries[0][0] |
| self.assertEqual(schema_version, 5) |
| |
| if __name__ == '__main__': |
| unittest.main() |