def test_set_executable_no_options(self): commands.load_project = no_project commands.Project = MockProject commands.init(["NewProject", "-e", "fooble"]) prj = MockProject.instances[-1] assert prj.saved self.assertEqual(prj.default_executable.path, "fooble")
def test_set_executable_and_main(self): commands.load_project = no_project commands.Project = MockProject commands.init(["NewProject", "-m", "main.foo", "-e", "fooble"]) prj = MockProject.instances[-1] self.assertEqual(prj.default_main_file, "main.foo") self.assertEqual(prj.default_executable.path, "fooble")
def test_set_main_no_executable_registered_extension_should_set_executable(self): commands.load_project = no_project commands.Project = MockProject commands.init(["NewProject", "-m", "file_with_registered_extension"]) prj = MockProject.instances[-1] self.assertEqual(prj.default_main_file, "file_with_registered_extension") self.assertEqual(prj.default_executable.script_file, "file_with_registered_extension")
def test_archive_option_set_to_true(self): commands.load_project = no_project commands.Project = MockProject commands.init(["NewProject", "--archive", "true"]) prj = MockProject.instances[-1] self.assertIsInstance(prj.data_store, datastore.ArchivingFileSystemDataStore) self.assertEqual(prj.data_store.archive_store, os.path.abspath(".smt/archive"))
def test_set_main_no_executable_unregistered_extension_should_set_executable_to_None(self): commands.load_project = no_project commands.Project = MockProject commands.init(["NewProject", "-m", "main.foo"]) prj = MockProject.instances[-1] self.assertEqual(prj.default_main_file, "main.foo") self.assertEqual(prj.default_executable, None)
def test_set_incompatible_executable_and_main(self): # not really sure what should happen here. Raise exception or just warning? # for now compatibility is not checked commands.load_project = no_project commands.Project = MockProject commands.init(["NewProject", "-m", "main.sli", "-e", "python"]) prj = MockProject.instances[-1] self.assertEqual(prj.default_main_file, "main.sli") self.assertEqual(prj.default_executable.path, "python")
def test_with_repository_option_should_perform_checkout(self): commands.load_project = no_project commands.Project = MockProject commands.init(["NewProject", "--repository", "/path/to/repos"]) self.assertEqual(MockProject.instances[-1].default_repository.url, "/path/to/repos") self.assert_( MockProject.instances[-1].default_repository._checkout_called, "/path/to/repos")
def test_store_option_should_get_record_store(self): commands.load_project = no_project commands.Project = MockProject commands.init([ "NewProject", "-s", "/path/to/store", ]) prj = MockProject.instances[-1] self.assertEqual(prj.record_store.path, "/path/to/store")
def test_archive_option_set_to_path(self): some_path = "./test_commands_archive_option" commands.load_project = no_project commands.Project = MockProject commands.init(["NewProject", "--archive", some_path]) prj = MockProject.instances[-1] self.assertIsInstance(prj.data_store, datastore.ArchivingFileSystemDataStore) self.assertEqual(prj.data_store.archive_store, os.path.abspath(some_path)) if os.path.exists(some_path): os.rmdir(some_path)
import datetime def inspectFolder(foldername, projectpath = '.', timestamp = datetime.datetime(2010, 1, 1, 11, 14, 40, 915039)): project = load_project(projectpath) logging.debug('Scan folder %s' %foldername) initialRoot = project.data_store.root project.data_store = datastore.FileSystemDataStore(foldername) record = project.new_record( main_file=sys.argv[0], parameters=foldername, executable=sumatra.programs.get_executable(sys.executable), reason='Scan folder %s' %foldername ) record.output_data = record.datastore.find_new_data(timestamp) project.add_record(record) project.save() project.data_store = datastore.FileSystemDataStore(initialRoot) if __name__ == '__main__': logging.basicConfig(level='INFO') projectpath = '.' try: project = load_project(projectpath) except IOError: logging.warning("Creating sumatra project") commands.init(['deduplication']) project = load_project(projectpath) print project.info() inspectFolder(sys.argv[1])
def test_with_single_args__should_create_Project(self): commands.load_project = no_project commands.Project = MockProject commands.init(["NewProject"]) self.assertEqual(MockProject.instances[-1].name, "NewProject")
def test_with_repository_option_should_perform_checkout(self): commands.load_project = no_project commands.Project = MockProject commands.init(["NewProject", "--repository", "/path/to/repos"]) self.assertEqual(MockProject.instances[-1].default_repository.url, "/path/to/repos") self.assert_(MockProject.instances[-1].default_repository._checkout_called, "/path/to/repos")
def test_store_option_should_get_record_store(self): commands.load_project = no_project commands.Project = MockProject commands.init(["NewProject", "-s", "/path/to/store",]) prj = MockProject.instances[-1] self.assertEqual(prj.record_store.path, "/path/to/store")