Esempio n. 1
0
    def test_files_should_have_correct_attributes(self):
        """Files should have url and filename params"""
        self.installer.content = json.dumps(
            {'files': [{
                'file1': {
                    'foo': 'bar'
                }
            }, {
                'file2': 'http://bar'
            }]})
        is_valid, _errors = validate_installer(self.installer)
        self.assertFalse(is_valid)

        self.installer.content = json.dumps({
            'files': [{
                'file1': {
                    'url': 'http://foo',
                    'filename': 'foo'
                }
            }, {
                'file2': 'http://bar'
            }]
        })
        is_valid, _errors = validate_installer(self.installer)
        self.assertTrue(is_valid)
Esempio n. 2
0
    def test_task_have_names(self):
        self.installer.content = json.dumps({
            'installer': [{
                'task': {
                    'name': 'create_prefix'
                }
            }, {
                'task': {
                    'name': 'winetricks',
                    'app': 'directx9'
                }
            }]
        })
        is_valid, _errors = validate_installer(self.installer)
        self.assertTrue(is_valid)

        self.installer.content = json.dumps({
            'installer': [{
                'task': {
                    'name': 'create_prefix'
                }
            }, {
                'task': {
                    'app': 'directx9'
                }
            }]
        })
        is_valid, _errors = validate_installer(self.installer)
        self.assertFalse(is_valid)
        self.assertIn('name', _errors[0])
Esempio n. 3
0
    def test_game_should_be_a_dict(self):
        self.installer.content = json.dumps({'game': ['foo', 'bar']})
        is_valid, _errors = validate_installer(self.installer)
        self.assertFalse(is_valid)

        self.installer.content = json.dumps({'game': {'foo': 'bar', 'bar': 'foo'}})
        is_valid, _errors = validate_installer(self.installer)
        self.assertTrue(is_valid)
Esempio n. 4
0
    def test_game_should_be_a_dict(self):
        self.installer.content = json.dumps({'game': ['foo', 'bar']})
        is_valid, _errors = validate_installer(self.installer)
        self.assertFalse(is_valid)

        self.installer.content = json.dumps(
            {'game': {
                'foo': 'bar',
                'bar': 'foo'
            }})
        is_valid, _errors = validate_installer(self.installer)
        self.assertTrue(is_valid)
Esempio n. 5
0
    def test_task_have_names(self):
        self.installer.content = json.dumps({'installer': [
            {'task': {'name': 'create_prefix'}},
            {'task': {'name': 'winetricks', 'app': 'directx9'}}
        ]})
        is_valid, _errors = validate_installer(self.installer)
        self.assertTrue(is_valid)

        self.installer.content = json.dumps({'installer': [
            {'task': {'name': 'create_prefix'}},
            {'task': {'app': 'directx9'}}
        ]})
        is_valid, _errors = validate_installer(self.installer)
        self.assertFalse(is_valid)
        self.assertIn('name', _errors[0])
Esempio n. 6
0
    def test_files_should_have_correct_attributes(self):
        """Files should have url and filename params"""
        self.installer.content = json.dumps({'files': [
            {'file1': {'foo': 'bar'}},
            {'file2': 'http://bar'}
        ]})
        is_valid, _errors = validate_installer(self.installer)
        self.assertFalse(is_valid)

        self.installer.content = json.dumps({'files': [
            {'file1': {'url': 'http://foo', 'filename': 'foo'}},
            {'file2': 'http://bar'}
        ]})
        is_valid, _errors = validate_installer(self.installer)
        self.assertTrue(is_valid)
Esempio n. 7
0
 def test_files_should_be_unique(self):
     self.installer.content = json.dumps({'files': [
         {'file1': 'http://foo'},
         {'file1': 'http://bar'},
     ]})
     is_valid, _errors = validate_installer(self.installer)
     self.assertFalse(is_valid, 'Files should be unique')
Esempio n. 8
0
 def test_scummvm_script_requires_game_id(self):
     script = json.dumps({'game': {}})
     installer = Installer(runner=Runner(name="ScummVM", slug='scummvm'),
                           content=script)
     is_valid, errors = validate_installer(installer)
     self.assertFalse(is_valid, errors)
     self.assertIn(
         "ScummVM game should have a "
         "game identifier in the 'game' section", errors)
Esempio n. 9
0
 def test_scummvm_script_requires_game_id(self):
     script = json.dumps({'game': {}})
     installer = Installer(
         runner=Runner(name="ScummVM", slug='scummvm'),
         content=script
     )
     is_valid, errors = validate_installer(installer)
     self.assertFalse(is_valid, errors)
     self.assertIn("ScummVM game should have a "
                   "game identifier in the 'game' section",
                   errors)
Esempio n. 10
0
 def test_files_should_be_unique(self):
     self.installer.content = json.dumps(
         {'files': [
             {
                 'file1': 'http://foo'
             },
             {
                 'file1': 'http://bar'
             },
         ]})
     is_valid, _errors = validate_installer(self.installer)
     self.assertFalse(is_valid, 'Files should be unique')
Esempio n. 11
0
 def clean(self):
     dummy_installer = models.Installer(game=self.instance.game, **self.cleaned_data)
     is_valid, errors = validate_installer(dummy_installer)
     if not is_valid:
         if "content" not in self.errors:
             self.errors["content"] = []
         for error in errors:
             self.errors["content"].append(error)
         raise forms.ValidationError("Invalid installer script")
     # Draft status depends on the submit button clicked
     self.cleaned_data["draft"] = "save" in self.data
     return self.cleaned_data
Esempio n. 12
0
 def clean(self):
     dummy_installer = models.Installer(game=self.instance.game, **self.cleaned_data)
     is_valid, errors = validate_installer(dummy_installer)
     if not is_valid:
         if "content" not in self.errors:
             self.errors["content"] = []
         for error in errors:
             self.errors["content"].append(error)
         raise forms.ValidationError("Invalid installer script")
     else:
         # Draft status depends on the submit button clicked
         self.cleaned_data["draft"] = "save" in self.data
         return self.cleaned_data
Esempio n. 13
0
 def test_files_should_be_list(self):
     self.installer.content = json.dumps({'files': []})
     is_valid, errors = validate_installer(self.installer)
     self.assertTrue(is_valid, errors)
Esempio n. 14
0
 def test_files_must_not_be_dict(self):
     self.installer.content = json.dumps({'files': {}})
     is_valid, errors = validate_installer(self.installer)
     self.assertFalse(is_valid, errors)
Esempio n. 15
0
 def test_files_should_be_list(self):
     self.installer.content = json.dumps({'files': []})
     is_valid, errors = validate_installer(self.installer)
     self.assertTrue(is_valid, errors)
Esempio n. 16
0
 def test_files_must_not_be_dict(self):
     self.installer.content = json.dumps({'files': {}})
     is_valid, errors = validate_installer(self.installer)
     self.assertFalse(is_valid, errors)