예제 #1
0
 def test_local_job_run(self):
     loader = JobLoader()
     job = loader.load_yaml(JOB_YAML)
     executor = LocalExecutor()
     job.execute(executor)
     self.assertTrue(job.success())
     self.assertEqual([b'I AM JOB HEAR ME RUN\n'], executor.get_log())
예제 #2
0
 def test_job_runs_steps_on_executor(self):
     loader = JobLoader()
     executor = DummyExecutor()
     job = loader.load_yaml(JOB_YAML)
     job.execute(executor)
     for step in job.steps:
         self.assertEqual(executor, step.executor_used)
예제 #3
0
 def test_job_opens_and_closes_executor_once(self):
     loader = JobLoader()
     job = loader.load_yaml(JOB_MULTISTEP_YAML)
     executor = DummyExecutor()
     job.execute(executor)
     self.assertEqual(1, executor.opened)
     self.assertEqual(1, executor.closed)
예제 #4
0
 def test_job_gets_all_steps(self):
     loader = JobLoader()
     job = loader.load_yaml(JOB_MULTISTEP_YAML)
     steps = job.steps
     self.assertEqual(2, len(job.steps))
     self.assertEqual(type(steps[0]), FailingJobLoaderTestPlugin)
     self.assertEqual(type(steps[1]), JobLoaderTestPlugin)
예제 #5
0
	def test_local_job_run(self):
		loader = JobLoader()
		job = loader.load_yaml(JOB_YAML)
		executor = LocalExecutor()
		job.execute(executor)
		self.assertTrue(job.success())
		self.assertEqual(
			[b'I AM JOB HEAR ME RUN\n'],
			executor.get_log())
예제 #6
0
 def test_job_success_or_fail_multistep(self):
     loader = JobLoader()
     executor = DummyExecutor()
     job = loader.load_yaml(JOB_MULTISTEP_YAML)
     job.execute(executor)
     self.assertEqual(False, job.success())
예제 #7
0
 def test_job_success_or_fail(self):
     loader = JobLoader()
     executor = DummyExecutor()
     job = loader.load_yaml(JOB_YAML)
     job.execute(executor)
     self.assertEqual(True, job.success())
예제 #8
0
 def test_job_from_yaml_has_plugin_args_from_yaml(self):
     loader = JobLoader()
     job = loader.load_yaml(JOB_YAML)
     steps = job.steps
     self.assertEqual(JOB_SCRIPT, steps[0].args)
예제 #9
0
 def test_job_from_yaml_has_plugins_in_steps(self):
     loader = JobLoader()
     job = loader.load_yaml(JOB_YAML)
     steps = job.steps
     self.assertEqual(JobLoaderTestPlugin, type(steps[0]))
예제 #10
0
 def test_job_from_yaml_returns_job(self):
     loader = JobLoader()
     job = loader.load_yaml(JOB_YAML)
     self.assertEqual(type(job), Job)
예제 #11
0
import time
import copy
from spoonybard.core.executors import SSHExecutor, LocalExecutor
from spoonybard.core.jobs import JobLoader

JOB_YAML  = """
name: test job
steps:
  - shell: |
      #!/bin/bash
      echo Running remotely
  - shell: |
      #!/bin/bash
      echo hi >> ~/thing
"""

cfg = {}

def run_job(job, executor):
	job.execute(executor)

loader = JobLoader()
job = loader.load_yaml(JOB_YAML)
print("Starting up")
for y in range(0,500):
	j = copy.deepcopy(job)
	remote = LocalExecutor(cfg)
	thread = threading.Thread(target=run_job, args=(j, remote,))
	thread.start()
print("Waiting for jobs")