2019-04-17 16:57:34 +01:00
|
|
|
##########################################################################
|
|
|
|
|
#
|
|
|
|
|
# pgAdmin 4 - PostgreSQL Tools
|
|
|
|
|
#
|
2021-01-04 15:34:45 +05:30
|
|
|
# Copyright (C) 2013 - 2021, The pgAdmin Development Team
|
2019-04-17 16:57:34 +01:00
|
|
|
# This software is released under the PostgreSQL Licence
|
|
|
|
|
#
|
|
|
|
|
##########################################################################
|
|
|
|
|
|
|
|
|
|
from pgadmin.utils.route import BaseTestGenerator
|
|
|
|
|
import os
|
|
|
|
|
import config
|
|
|
|
|
from stat import *
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PermissionsTestCase(BaseTestGenerator):
|
|
|
|
|
"""
|
|
|
|
|
This class validates filesystem permissions for data/config storage
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
scenarios = [
|
|
|
|
|
('Check config database', dict(path=config.TEST_SQLITE_PATH,
|
|
|
|
|
permissions='600')),
|
|
|
|
|
('Check config directory', dict(
|
|
|
|
|
path=os.path.dirname(config.TEST_SQLITE_PATH),
|
|
|
|
|
permissions='700')),
|
|
|
|
|
('Check session directory', dict(
|
2019-05-21 12:14:36 +01:00
|
|
|
path=config.SESSION_DB_PATH,
|
2019-04-17 16:57:34 +01:00
|
|
|
permissions='700'))
|
|
|
|
|
]
|
|
|
|
|
|
2019-04-18 11:17:54 +01:00
|
|
|
def setUp(self):
|
2019-04-18 09:12:40 +01:00
|
|
|
if os.name == 'nt':
|
|
|
|
|
self.skipTest("This test is skipped on Windows which doesn't "
|
2019-04-18 09:13:55 +01:00
|
|
|
"support Unix style file permissions.")
|
2019-04-18 09:12:40 +01:00
|
|
|
|
2019-04-17 16:57:34 +01:00
|
|
|
def runTest(self):
|
|
|
|
|
self.assertTrue(
|
|
|
|
|
oct(os.stat(self.path)[ST_MODE])[-3:] == self.permissions
|
|
|
|
|
)
|