|
|
|
#import sys
|
|
|
|
import os
|
|
|
|
|
|
|
|
import mock
|
|
|
|
import unittest
|
|
|
|
from unittest import TestCase
|
|
|
|
|
|
|
|
|
|
|
|
from couchpotato.core.plugins.browser import FileBrowser
|
|
|
|
from couchpotato.core.softchroot import SoftChroot
|
|
|
|
|
|
|
|
|
|
|
|
CHROOT_DIR = '/tmp/'
|
|
|
|
|
|
|
|
# 'couchpotato.core.plugins.browser.Env',
|
|
|
|
@mock.patch('couchpotato.core.plugins.browser.Env', name='EnvMock')
|
|
|
|
class FileBrowserChrootedTest(TestCase):
|
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
self.b = FileBrowser()
|
|
|
|
|
|
|
|
def tuneMock(self, env):
|
|
|
|
#set up mock:
|
|
|
|
sc = SoftChroot()
|
|
|
|
sc.initialize(CHROOT_DIR)
|
|
|
|
env.get.return_value = sc
|
|
|
|
|
|
|
|
|
|
|
|
def test_view__chrooted_path_none(self, env):
|
|
|
|
#def view(self, path = '/', show_hidden = True, **kwargs):
|
|
|
|
|
|
|
|
self.tuneMock(env)
|
|
|
|
|
|
|
|
r = self.b.view(None)
|
|
|
|
self.assertEqual(r['home'], '/')
|
|
|
|
self.assertEqual(r['parent'], '/')
|
|
|
|
self.assertTrue(r['is_root'])
|
|
|
|
|
|
|
|
def test_view__chrooted_path_chroot(self, env):
|
|
|
|
#def view(self, path = '/', show_hidden = True, **kwargs):
|
|
|
|
|
|
|
|
self.tuneMock(env)
|
|
|
|
|
|
|
|
for path, parent in [('/asdf','/'), (CHROOT_DIR, '/'), ('/mnk/123/t', '/mnk/123/')]:
|
|
|
|
r = self.b.view(path)
|
|
|
|
path_strip = path
|
|
|
|
if (path.endswith(os.path.sep)):
|
|
|
|
path_strip = path_strip.rstrip(os.path.sep)
|
|
|
|
|
|
|
|
self.assertEqual(r['home'], '/')
|
|
|
|
self.assertEqual(r['parent'], parent)
|
|
|
|
self.assertFalse(r['is_root'])
|