예제 #1
0
 def test_invalid_priority(self):
     vals = self.__language_dict()
     vals['priority'] = 2.3
     with pytest.raises(languages.LanguageConfigError):
         languages.Language('id', vals)
     vals['priority'] = '100'
     with pytest.raises(languages.LanguageConfigError):
         languages.Language('id', vals)
예제 #2
0
 def test_invalid_run(self):
     vals = self.__language_dict()
     vals['run'] = ['python2', '{mainfile}']
     with pytest.raises(languages.LanguageConfigError):
         languages.Language('id', vals)
     vals['run'] = 'echo {nonexistent}'
     with pytest.raises(languages.LanguageConfigError):
         languages.Language('id', vals)
예제 #3
0
 def test_invalid_compile(self):
     vals = self.__language_dict()
     vals['compile'] = ['gcc', '{files}']
     with pytest.raises(languages.LanguageConfigError):
         languages.Language('id', vals)
     vals['compile'] = 'echo {nonexistent}'
     with pytest.raises(languages.LanguageConfigError):
         languages.Language('id', vals)
예제 #4
0
 def test_invalid_id(self):
     vals = self.__language_dict()
     with pytest.raises(TypeError):
         languages.Language(None, vals)
     with pytest.raises(TypeError):
         languages.Language(42, vals)
     with pytest.raises(languages.LanguageConfigError):
         languages.Language('åäö', vals)
     with pytest.raises(languages.LanguageConfigError):
         languages.Language('_java_', vals)
     with pytest.raises(languages.LanguageConfigError):
         languages.Language('Capital', vals)
예제 #5
0
    def test_bad_entrypoints(self):
        vals = self.__language_dict()

        # Two different entry points
        vals['run'] = 'echo {mainfile}'
        with pytest.raises(languages.LanguageConfigError):
            languages.Language('id', vals)

        # No entry point
        vals['run'] = 'echo COMPILE'
        vals['compile'] = 'echo RUN'
        with pytest.raises(languages.LanguageConfigError):
            languages.Language('id', vals)
예제 #6
0
    def test_good_entrypoints(self):
        vals = self.__language_dict()

        vals['compile'] = 'echo {binary}'
        vals['run'] = 'echo {binary}'
        languages.Language('id', vals)

        vals['compile'] = 'echo {mainfile}'
        vals['run'] = 'echo {mainfile}'
        languages.Language('id', vals)

        vals['compile'] = 'echo {mainclass}'
        vals['run'] = 'echo {mainclass}'
        languages.Language('id', vals)
예제 #7
0
    def test_update(self):
        lang = languages.Language('langid', self.__language_dict())

        lang.update({'priority': -1})
        assert lang.priority == -1

        lang.update({'name': 'New name'})
        assert lang.name == 'New name'

        lang.update({'files': '*'})
        assert lang.files == ['*']

        lang.update({'shebang': 'new.*end'})
        assert lang.shebang.match('newfilend')

        with pytest.raises(languages.LanguageConfigError):
            # ambiguous entry point
            lang.update({'compile': '{mainfile}'})
        lang.update({'compile': 'newcompile'})
        assert lang.compile == 'newcompile'

        with pytest.raises(languages.LanguageConfigError):
            # no entry point
            lang.update({'run': 'newrun'})
        lang.update({'run': 'newrun {mainclass}'})
        assert lang.run == 'newrun {mainclass}'
예제 #8
0
 def test_invalid_files(self):
     vals = self.__language_dict()
     vals['files'] = ['*.cc', '*.cpp']
     with pytest.raises(languages.LanguageConfigError):
         languages.Language('id', vals)
예제 #9
0
 def test_missing_files(self):
     vals = self.__language_dict()
     del vals['files']
     with pytest.raises(languages.LanguageConfigError):
         languages.Language('id', vals)
예제 #10
0
 def test_invalid_name(self):
     vals = self.__language_dict()
     vals['name'] = ['A List']
     with pytest.raises(languages.LanguageConfigError):
         languages.Language('id', vals)
예제 #11
0
 def test_create(self):
     lang = languages.Language('langid', self.__language_dict())
예제 #12
0
 def test_without_compile(self):
     vals = self.__language_dict()
     del vals['compile']
     languages.Language('id', vals)
예제 #13
0
 def test_invalid_shebang(self):
     vals = self.__language_dict()
     vals['shebang'] = '(Not an RE'
     with pytest.raises(re.error):
         languages.Language('id', vals)
예제 #14
0
 def test_without_shebang(self):
     vals = self.__language_dict()
     del vals['shebang']
     languages.Language('id', vals)