import unittest import os from core.NeuronModule import MissingParameterException, InvalidParameterException from neurons.script.script import Script from core.FileManager import FileManager class TestScript(unittest.TestCase): def setUp(self): self.path = "path" self.random = "random" def testParameters(self): def run_test_missing_param(parameters_to_test): with self.assertRaises(MissingParameterException): Script(**parameters_to_test) def run_test_invalid_param(parameters_to_test): with self.assertRaises(InvalidParameterException): Script(**parameters_to_test) # empty parameters = dict() run_test_missing_param(parameters) # missing path parameters = { "random": self.random } run_test_missing_param(parameters) # random path self.path = "/tmp/iamarandompath/anotherrandompath/kalliope" parameters = { "path": self.path } run_test_invalid_param(parameters) # Test Non executable file # Create the file and remove permissions to the user tmp_path = "/tmp/kalliope/tests/" tmp_file_path = tmp_path+"neuronScript" if not os.path.exists(tmp_path): os.makedirs(tmp_path) text_to_write = "[kalliope-test] TestScript - testParameters" with open(tmp_file_path, 'w') as myFile: myFile.write(text_to_write) os.chmod(tmp_file_path, 0600) # test the user does not have access self.path = tmp_file_path parameters = { "path": self.path } run_test_invalid_param(parameters) # Remove the tmp file os.chmod(tmp_file_path, 0700) os.remove(tmp_file_path) if __name__ == '__main__': unittest.main()