コード例 #1
0
ファイル: FileSystemTest.py プロジェクト: Djaler/PyOS
    def test_hash_table(self):
        FileSystem.format('test')
        fs = FileSystem('test')

        for i in range(1000):
            fs.write(str(i), str(i))
        for i in range(1000):
            self.assertEqual(fs.read(str(i)), str(i))
コード例 #2
0
ファイル: main.py プロジェクト: Djaler/PyOS
    def __init__(self, file_name):
        self._cls()
        if not os.path.exists(file_name):
            self._format_file(file_name)

        self._fs = FileSystem(file_name)
        self._file_name = file_name

        self._init_commands()
コード例 #3
0
ファイル: FileSystemTest.py プロジェクト: Djaler/PyOS
    def test_read_and_write_small(self):
        FileSystem.format('test')
        fs = FileSystem('test')

        text = '1'
        fs.write('file1', text)

        res = fs.read('file1')
        self.assertEqual(text, res)
コード例 #4
0
ファイル: FileSystemTest.py プロジェクト: Djaler/PyOS
    def test_set_permissions(self):
        FileSystem.format('test')
        fs = FileSystem('test')

        fs.create('file')
        self.assertTrue(fs.files_list['file'].owner_read)
        self.assertTrue(fs.files_list['file'].owner_write)
        self.assertTrue(fs.files_list['file'].other_read)
        self.assertFalse(fs.files_list['file'].other_write)

        fs.set_permissions('file', True, True, False, False)
        self.assertTrue(fs.files_list['file'].owner_read)
        self.assertTrue(fs.files_list['file'].owner_write)
        self.assertFalse(fs.files_list['file'].other_read)
        self.assertFalse(fs.files_list['file'].other_write)
コード例 #5
0
ファイル: FileSystemTest.py プロジェクト: Djaler/PyOS
    def test_append_write(self):
        FileSystem.format('test')
        fs = FileSystem('test')

        text = ''.join(str(i) for i in range(10000))
        fs.write('file1', text)

        res = fs.read('file1')
        self.assertEqual(text, res)

        append_text = ''.join(str(i) for i in reversed(range(10000)))
        fs.append('file1', append_text)

        res = fs.read('file1')
        self.assertEqual(text + append_text, res)
コード例 #6
0
ファイル: FileSystemTest.py プロジェクト: Djaler/PyOS
    def test_users(self):
        FileSystem.format('test')
        fs = FileSystem('test')
        self.assertIn('admin', fs.read('users'))

        fs.add_user('user1', 'password')
        self.assertIn('user1', fs.read('users'))

        fs.del_user('user1')
        self.assertNotIn('user1', fs.read('users'))

        with self.assertRaises(ValueError):
            fs.del_user('user1')

        with self.assertRaises(ValueError):
            fs.add_user('admin', 'password')
コード例 #7
0
ファイル: main.py プロジェクト: Djaler/PyOS
    def _login(self, users):
        login = input('login:'******'Неверное имя пользователя')
            login = input('login:'******'password:'******'Неверный пароль')
        self._cls()
        uid = users[login][0]

        if login.lower() == 'neo':
            from matrix_curses import matrix_curses

            matrix_curses.run(3)

        if uid != 0:
            del self._fs
            self._fs = FileSystem(self._file_name, uid)

        if login.lower() != 'neo':
            width_window = int(
                subprocess.check_output(['stty', 'size']).split()[1])
            print(
                figlet_format('WELCOME HOME,  MR. %s' % login.upper(),
                              font='big',
                              width=width_window))
        else:
            from sys import stdout
            from random import randint
            from colorama import init, Fore

            init()
            print(Fore.GREEN, end='')
            stdout.flush()

            string = 'Wake up, Neo...'

            for char in string:
                print(char, end='')
                stdout.flush()
                sleep(randint(10, 40) / 100)
            print()
コード例 #8
0
ファイル: FileSystemTest.py プロジェクト: Djaler/PyOS
    def test_rename(self):
        FileSystem.format('test')
        fs = FileSystem('test')
        self.assertEqual(sorted(fs.files_list.keys()), ['users'])

        fs.create('file1')
        self.assertEqual(sorted(fs.files_list.keys()),
                         sorted(['users', 'file1']))

        fs.rename('file1', 'file2')
        self.assertEqual(sorted(fs.files_list.keys()),
                         sorted(['users', 'file2']))

        fs.create('file3')
        self.assertEqual(sorted(fs.files_list.keys()),
                         sorted(['users', 'file2', 'file3']))

        with self.assertRaises(FileExistsError):
            fs.rename('file3', 'file2')
コード例 #9
0
ファイル: FileSystemTest.py プロジェクト: Djaler/PyOS
    def test_create_and_delete(self):
        FileSystem.format('test')
        fs = FileSystem('test')
        self.assertEqual(sorted(fs.files_list.keys()), ['users'])

        fs.create('file1')
        self.assertEqual(sorted(fs.files_list.keys()),
                         sorted(['users', 'file1']))

        fs.create('file2')
        self.assertEqual(sorted(fs.files_list.keys()),
                         sorted(['users', 'file1', 'file2']))

        fs.delete('file2')
        self.assertEqual(sorted(fs.files_list.keys()),
                         sorted(['users', 'file1']))

        with self.assertRaises(FileExistsError):
            fs.create('file1')

        with self.assertRaises(ValueError):
            long_name = ''.join(['0'] * 60)
            fs.create(long_name)
コード例 #10
0
ファイル: FileSystemTest.py プロジェクト: Djaler/PyOS
    def test_read_and_write(self):
        FileSystem.format('test')
        fs = FileSystem('test')

        text = ''.join(str(i) for i in range(1000))
        fs.write('file1', text)

        res = fs.read('file1')
        self.assertEqual(text, res)

        text = ''.join(str(i) for i in range(100000))
        fs.write('file1', text)

        res = fs.read('file1')
        self.assertEqual(text, res)

        text = ''.join(str(i) for i in range(1000000))
        fs.write('file2', text)

        res = fs.read('file2')
        self.assertEqual(text, res)

        with self.assertRaises(FileNotFoundError):
            fs.read('file3')