コード例 #1
0
    def test_cli_save_fails_file_exists(self):
        # Create some temporary files and directories that simulate save files.
        expected_content = 'This is example content for comparison.\n'

        source_dir = mkdtemp()
        dest_dir = mkdtemp()

        source_file = NamedTemporaryFile(dir=source_dir, delete=False)
        source_file.write(expected_content.encode())
        source_file.close()

        config = {
            'manager':
            'NativeCopyManager',
            'remotes': {
                GameBackupExtension.get_system_platform(): dest_dir
            },
            'games': [{
                'name': 'Some Game',
                GameBackupExtension.get_system_platform(): {
                    'local': source_dir
                }
            }]
        }

        with TempConfig(config) as cfg:
            rv, so, se = self._call_cli(
                ['-c', cfg, 'save', '--game', 'Some Game'])
            self.assertEqual(rv, 5)
            self.assertIn(b'Cannot backup save games because:', se)

        shutil.rmtree(source_dir)
        shutil.rmtree(dest_dir)
コード例 #2
0
    def test_cli_saves_all_successfully(self):
        # Create some temporary files and directories that simulate save files.
        expected_content = 'This is example content for comparison.\n'

        source_dir = mkdtemp()
        dest_dir = mkdtemp()
        shutil.rmtree(dest_dir)

        source_file = NamedTemporaryFile(dir=source_dir, delete=False)
        source_file.write(expected_content.encode())
        source_file.close()

        config = {
            'manager':
            'NativeCopyManager',
            'remotes': {
                GameBackupExtension.get_system_platform(): dest_dir
            },
            'games': [{
                'name': 'Some Game',
                GameBackupExtension.get_system_platform(): {
                    'local': source_dir
                }
            }, {
                'name': 'Some Other Game',
                'some_platform': {
                    'local': '/lol/path/doesnt/matter',
                    'remote': '/somewhere/else/lol'
                }
            }]
        }

        with TempConfig(config) as cfg:
            rv, so, se = self._call_cli(['-c', cfg, 'save', '--all'])
            self.assertEqual(rv, 0)

        with open(os.path.join(dest_dir,
                               os.path.basename(source_file.name))) as f:
            self.assertEqual(f.read(), expected_content)

        shutil.rmtree(source_dir)
        shutil.rmtree(dest_dir)
コード例 #3
0
    def test_cli_resolves_variables_from_environment_first(self):
        # Create some temporary files and directories that simulate save files.
        expected_content = 'This is example content for comparison.\n'

        source_dir = mkdtemp()
        dest_dir = mkdtemp()
        shutil.rmtree(dest_dir)

        source_file = NamedTemporaryFile(dir=source_dir, delete=False)
        source_file.write(expected_content.encode())
        source_file.close()

        config = {
            'manager':
            'NativeCopyManager',
            'remotes': {
                GameBackupExtension.get_system_platform(): dest_dir
            },
            'variables': {
                'EXAMPLE_VARIABLE': 'some_dirname'
            },
            'games': [{
                'name': 'Some Game',
                GameBackupExtension.get_system_platform(): {
                    'local': source_dir,
                    'remote': os.path.join('$REMOTE_ROOT', '$EXAMPLE_VARIABLE')
                }
            }]
        }

        with TempConfig(config) as cfg, SetEnv({'EXAMPLE_VARIABLE': '123'}):
            rv, so, se = self._call_cli(
                ['-c', cfg, 'save', '--game', 'Some Game'])
            self.assertEqual(rv, 0)

        with open(
                os.path.join(dest_dir, '123',
                             os.path.basename(source_file.name))) as f:
            self.assertEqual(f.read(), expected_content)

        shutil.rmtree(source_dir)
        shutil.rmtree(dest_dir)
コード例 #4
0
 def test_cli_unknown_copy_manager(self):
     config = {
         'manager':
         'ActuallyDeletesCopyManager',
         'remotes': {
             GameBackupExtension.get_system_platform(): '/some/root/path'
         },
         'games': [{
             'name': 'Some Game',
             GameBackupExtension.get_system_platform(): {
                 'local': '/lol/path/doesnt/matter',
                 'remote': '/somewhere/else/lol'
             }
         }]
     }
     with TempConfig(config) as cfg:
         rv, so, se = self._call_cli(['-c', cfg, 'save'])
         self.assertEqual(rv, 1)
         self.assertIn(
             b'Failed to find copy manager: ActuallyDeletesCopyManager', se)
コード例 #5
0
 def test_cli_empty_config(self):
     config = {
         'manager': 'NativeCopyManager',
         'remotes': {
             GameBackupExtension.get_system_platform(): '/some/root/path'
         }
     }
     with TempConfig(config) as cfg:
         rv, so, se = self._call_cli(['-c', cfg, 'save'])
         self.assertEqual(rv, 1)
         self.assertIn(
             'No game definitions found in {}'.format(cfg).encode(), se)
コード例 #6
0
 def test_cli_no_remote(self):
     config = {
         'manager':
         'NativeCopyManager',
         'remotes': {
             'some_platform': '/lol/didnt/read'
         },
         'games': [{
             'name': 'Some Game',
             GameBackupExtension.get_system_platform(): {
                 'local': '/lol/path/doesnt/matter',
                 'remote': '/somewhere/else/lol'
             }
         }]
     }
     with TempConfig(config) as cfg:
         rv, so, se = self._call_cli(['-c', cfg, 'save'])
         self.assertEqual(rv, 1)
         self.assertIn(b'Cannot set up remote for this platform', se)
コード例 #7
0
 def test_cli_platform_empty_config(self):
     config = {
         'manager':
         'NativeCopyManager',
         'remotes': {
             GameBackupExtension.get_system_platform(): '/some/root/path'
         },
         'games': [{
             'name': 'Some Game',
             'some_platform': {
                 'local': '/lol/path/doesnt/matter',
                 'remote': '/somewhere/else/lol'
             }
         }]
     }
     with TempConfig(config) as cfg:
         rv, so, se = self._call_cli(['-c', cfg, 'save'])
         self.assertEqual(rv, 1)
         self.assertIn(b'There are no games configured for this platform',
                       se)