mirror of https://github.com/aptly-dev/aptly
52 lines
1.9 KiB
Python
52 lines
1.9 KiB
Python
import os
|
|
from lib import BaseTest
|
|
|
|
|
|
class FileSystemEndpointTest(BaseTest):
|
|
"""
|
|
BaseTest + support for filesystem endpoints
|
|
"""
|
|
|
|
def prepare(self):
|
|
self.configOverride = {"FileSystemPublishEndpoints": {
|
|
"symlink": {
|
|
"rootDir": os.path.join(os.environ["HOME"], ".aptly", "public_symlink"),
|
|
"linkMethod": "symlink"
|
|
},
|
|
"hardlink": {
|
|
"rootDir": os.path.join(os.environ["HOME"], ".aptly", "public_hardlink"),
|
|
"linkMethod": "hardlink"
|
|
},
|
|
"copy": {
|
|
"rootDir": os.path.join(os.environ["HOME"], ".aptly", "public_copy"),
|
|
"linkMethod": "copy",
|
|
"verifyMethod": "md5"
|
|
},
|
|
"copysize": {
|
|
"rootDir": os.path.join(os.environ["HOME"], ".aptly", "public_copysize"),
|
|
"linkMethod": "copy",
|
|
"verifyMethod": "size"
|
|
}
|
|
}}
|
|
super(FileSystemEndpointTest, self).prepare()
|
|
|
|
def check_is_regular(self, path):
|
|
if not os.path.isfile(os.path.join(os.environ["HOME"], ".aptly", path)):
|
|
raise Exception("path %s is not a regular file" % (path, ))
|
|
|
|
def check_is_symlink(self, path):
|
|
if not os.path.islink(os.path.join(os.environ["HOME"], ".aptly", path)):
|
|
raise Exception("path %s is not a symlink" % (path, ))
|
|
|
|
def is_hardlink(self, path):
|
|
return os.stat(os.path.join(os.environ["HOME"], ".aptly", path)).st_nlink >= 2
|
|
|
|
def check_is_hardlink(self, path):
|
|
if not self.is_hardlink(path):
|
|
raise Exception("path %s is not a hardlink" % (path, ))
|
|
|
|
def check_is_copy(self, path):
|
|
fullpath = os.path.join(os.environ["HOME"], ".aptly", path)
|
|
if not (os.path.isfile(fullpath) and not self.is_hardlink(path)):
|
|
raise Exception("path %s is not a copy" % (path, ))
|