class TestUserFileStorage(unittest.TestCase):
    def setUp(self):
        test_utils.setup()
        self.__storage = UserFileStorage(b'12345678')
        self.upload_feature = FileUploadFeature(self.__storage,
                                                test_utils.temp_folder)

    def tearDown(self):
        test_utils.cleanup()
        self.__storage._stop_autoclean()

    def test_create_file(self):
        file_path = self.upload_feature.save_file('my_file.txt', b'test text',
                                                  'userX')
        self.assertTrue(os.path.exists(file_path))

    def test_content_in_created_file(self):
        file_path = self.upload_feature.save_file('my_file.txt', b'My text',
                                                  'userX')
        content = file_utils.read_file(file_path)
        self.assertEqual('My text', content)

    def test_same_filename(self):
        file_path1 = self.upload_feature.save_file('my_file.txt', b'some text',
                                                   'userX')
        file_path2 = self.upload_feature.save_file('my_file.txt', b'some text',
                                                   'userX')
        self.assertNotEqual(file_path1, file_path2)
예제 #2
0
class TestUserFileStorage(unittest.TestCase):
    def setUp(self):
        test_utils.setup()
        self.storage = UserFileStorage(b'12345678')

    def tearDown(self):
        test_utils.cleanup()
        self.storage._stop_autoclean()

    def test_create_folder(self):
        user_folder = self.storage.prepare_new_folder('me', test_utils.temp_folder)
        self.assertTrue(os.path.exists(user_folder))

    def test_create_folder_for_different_users(self):
        user1_folder = self.storage.prepare_new_folder('user1', test_utils.temp_folder)
        user2_folder = self.storage.prepare_new_folder('user2', test_utils.temp_folder)
        self.assertNotEqual(user1_folder, user2_folder)

    def test_create_different_folders_for_a_user(self):
        folder1 = self.storage.prepare_new_folder('me', test_utils.temp_folder)
        time.sleep(0.002)
        folder2 = self.storage.prepare_new_folder('me', test_utils.temp_folder)
        self.assertNotEqual(folder1, folder2)

    def test_autoclean_folder(self):
        folder = self.storage.prepare_new_folder('me', test_utils.temp_folder)
        self.storage.start_autoclean(test_utils.temp_folder, 2)
        self.assertTrue(os.path.exists(folder))

        time.sleep(0.005)
        self.assertFalse(os.path.exists(folder))

    def test_allow_to_access_own_folder(self):
        user1_folder = self.storage.prepare_new_folder('user1', test_utils.temp_folder)

        relative_folder = file_utils.relative_path(user1_folder, test_utils.temp_folder)
        self.assertTrue(self.storage.allowed_to_access(relative_folder, 'user1'))

    def test_prohibit_access_to_different_user(self):
        user1_folder = self.storage.prepare_new_folder('user1', test_utils.temp_folder)

        relative_folder = file_utils.relative_path(user1_folder, test_utils.temp_folder)
        self.assertFalse(self.storage.allowed_to_access(relative_folder, 'user2'))
예제 #3
0
class TestUserFileStorage(unittest.TestCase):
    def setUp(self):
        test_utils.setup()
        self.storage = UserFileStorage(b'12345678')

    def tearDown(self):
        test_utils.cleanup()
        self.storage._stop_autoclean()

    def test_create_folder(self):
        user_folder = self.storage.prepare_new_folder('me', test_utils.temp_folder)
        self.assertTrue(os.path.exists(user_folder))

    def test_create_folder_for_different_users(self):
        user1_folder = self.storage.prepare_new_folder('user1', test_utils.temp_folder)
        user2_folder = self.storage.prepare_new_folder('user2', test_utils.temp_folder)
        self.assertNotEqual(user1_folder, user2_folder)

    def test_create_different_folders_for_a_user(self):
        folder1 = self.storage.prepare_new_folder('me', test_utils.temp_folder)
        time.sleep(0.002)
        folder2 = self.storage.prepare_new_folder('me', test_utils.temp_folder)
        self.assertNotEqual(folder1, folder2)

    def test_autoclean_folder(self):
        folder = self.storage.prepare_new_folder('me', test_utils.temp_folder)
        self.storage.start_autoclean(test_utils.temp_folder, 2)
        self.assertTrue(os.path.exists(folder))

        time.sleep(0.020)
        self.assertFalse(os.path.exists(folder))

    def test_allow_to_access_own_folder(self):
        user1_folder = self.storage.prepare_new_folder('user1', test_utils.temp_folder)

        relative_folder = file_utils.relative_path(user1_folder, test_utils.temp_folder)
        self.assertTrue(self.storage.allowed_to_access(relative_folder, 'user1'))

    def test_prohibit_access_to_different_user(self):
        user1_folder = self.storage.prepare_new_folder('user1', test_utils.temp_folder)

        relative_folder = file_utils.relative_path(user1_folder, test_utils.temp_folder)
        self.assertFalse(self.storage.allowed_to_access(relative_folder, 'user2'))
예제 #4
0
class TestUserFileStorage(unittest.TestCase):
    def setUp(self):
        test_utils.setup()
        self.__storage = UserFileStorage(b'12345678')
        self.upload_feature = FileUploadFeature(self.__storage, test_utils.temp_folder)

    def tearDown(self):
        test_utils.cleanup()
        self.__storage._stop_autoclean()

    def test_prepare_new_folder(self):
        file_path = self.upload_feature.prepare_new_folder('userX')
        self.assertTrue(os.path.exists(file_path))

    def test_prepare_new_folder_different_users(self):
        path1 = self.upload_feature.prepare_new_folder('userX')
        path2 = self.upload_feature.prepare_new_folder('userY')
        self.assertNotEqual(path1, path2)

    def test_prepare_new_folder_twice(self):
        file_path1 = self.upload_feature.prepare_new_folder('userX')
        time.sleep(0.1)
        file_path2 = self.upload_feature.prepare_new_folder('userX')
        self.assertNotEqual(file_path1, file_path2)