def setUpExecution(self, server, project, client, execution) : s = Server(server) s.createServer() s.createProject(project) s.createClient(project, client) e = ArgPrepender(s, project, client, execution) return e
def test_clientStatus_whenStarted(self) : s = Server("fixture") s.createServer() s.createProject("myproject") s.createClient("myproject", "myclient") self.assertEqual( s.clientStatus("myproject","myclient"), "NotResponding")
def test_createProject(self) : s = Server("fixture") s.createServer() s.createProject("myproject") s._assertProjectOk("myproject") # no exceptiona self.assertFileContent("fixture/myproject/metadata", "{}")
def test_clientStatus_afterIdle(self) : s = Server("fixture") s.createServer() s.createProject("myproject") s.createClient("myproject", "myclient") s.clientIdle("myproject", "myclient", 30) self.assertEqual( s.clientStatus("myproject","myclient"), "Idle")
def test_isRunning_withClient_noExecutions(self) : s = Server("fixture") s.createServer() s.createProject("myproject") s.createClient("myproject", "myclient") self.assertEqual( s.isRunning("myproject","myclient"), False)
def test_assertClientOk_whenAllOk(self) : s = Server("fixture") s.createServer() s.createProject("myproject") s.createClient("myproject", "myclient") s._assertClientOk("myproject","myclient") # no exceptiona self.assertFileContent("fixture/myproject/myclient/metadata", "{}")
def test_projects(self) : s = Server("fixture") s.createServer() s.createProject("project1") s.createProject("project2") self.assertEqual(s.projects(), [ 'project1', 'project2', ])
def setUpEmptyClient(project='myproject', client='myclient', **keyw) : s = Server("fixture") s.createServer() s.createProject(project) s.createClient(project,client) s.now = datetime.datetime(1900,1,1,0,0,0) s.clientIdle(project, client, 0) s.setClientMetadata(project,client,**keyw) return s
def test_assertClientOk(self) : s = Server("fixture") s.createServer() s.createProject("myproject") try : s._assertClientOk("myproject","badclient") self.fail("Exception expected") except ClientNotFound, e: self.assertEqual(e.message, "Client not found 'badclient'")
def test_projectMetadata(self) : s = Server("fixture") s.createServer() s.createProject("myproject") s.setProjectMetadata("myproject", key1 = "value1", key2 = [4,3,2], ) self.assertEqual(s.projectMetadata("myproject"), {'key1': 'value1', 'key2' : [4,3,2]})
def test_executionStarts_whenBadClient(self) : s = Server("fixture") s.createServer() s.createProject("myproject") e = ArgPrepender(s, "myproject","badclient","20130301-132313") try : e.executionStarts( timestamp="2013-03-01 13:23:13", changelog=[]) self.fail("Exception expected") except ClientNotFound, e: self.assertEqual(e.message, "Client not found 'badclient'")
def test_clients(self) : s = Server("fixture") s.createServer() s.createProject("project1") s.createClient("project1","client1-1") s.createProject("project2") s.createClient("project2","client2-1") s.createClient("project2","client2-2") self.assertEqual(s.clients("project2"), [ 'client2-1', 'client2-2', ])
def test_clientStatus_whenRunning(self) : s = Server("fixture") s.createServer() s.createProject("myproject") s.createClient("myproject", "myclient") s.executionStarts( "myproject", "myclient", "20130301-132313", timestamp="2013-03-01 13:23:13", changelog=[]) self.assertEqual( s.clientStatus("myproject","myclient"), "Running")
def test_isRunning_withExecution(self) : s = Server("fixture") s.createServer() s.createProject("myproject") s.createClient("myproject", "myclient") s.executionStarts( "myproject", "myclient", "20130301-132313", timestamp="2013-03-01 13:23:13", changelog=[]) self.assertEqual( s.isRunning("myproject","myclient","20130301-132313"), True)
def setUpEmptyClient(self) : s = Server("fixture") s.createServer() s.createProject("myproject") s.createClient("myproject", "myclient") s.setClientMetadata("myproject", "myclient", description = "a description", briefDescription = "brief description", ) # force an idle time s.now=datetime.datetime(2013,4,5,6,7,8) s.clientIdle("myproject", "myclient", 0) return s
def test_projectMetadata_updates(self) : s = Server("fixture") s.createServer() s.createProject("myproject") s.setProjectMetadata("myproject", key1 = "first", key2 = [4,3,2], ) s.setProjectMetadata("myproject", key1 = "second", key3 = [7,8,9], ) self.assertEqual(s.projectMetadata("myproject"), {'key1': 'second', 'key2' : [4,3,2], 'key3' : [7,8,9]})
def test_project_withClients(self) : s = Server("fixture") s.createServer() s.createProject("myproject") s.createClient("myproject","myclient") s.setClientMetadata("myproject", "myclient", description = "a description", briefDescription = "brief description", ) s.createClient("myproject","yourclient") s.setClientMetadata("myproject", "yourclient", description = "your description", briefDescription = "your brief description", ) # force an idle time s.now=datetime.datetime(2013,4,5,6,7,8) s.clientIdle("myproject", "myclient", 0) s.clientIdle("myproject", "yourclient", 0) s.now = datetime.datetime(2013,9,1,2,3,4) w = JsonSummary() result = w.project(s, 'myproject') self.assertMultiLineEqual(result, '{' ' "project" : "myproject",\n' ' "lastupdate" : "2013/09/01 02:03:04",\n' ' "clients" : [\n' ' {\n' ' "name": "myclient",\n' ' "description": \'a description\',\n' ' "name_details": \'brief description\',\n' ' "status": "int",\n' ' "doing": "old",\n' ' "lastupdate": "2013/04/05 06:07:08",\n' ' "lastExecution": "19000101-000000",\n' ' },\n' ' {\n' ' "name": "yourclient",\n' ' "description": \'your description\',\n' ' "name_details": \'your brief description\',\n' ' "status": "int",\n' ' "doing": "old",\n' ' "lastupdate": "2013/04/05 06:07:08",\n' ' "lastExecution": "19000101-000000",\n' ' },\n' ' ]\n' '}' )
def emptyExecution(self) : project, client, execution = "myproject", "myclient", "20130301-232425" s = Server("fixture") s.createServer() s.createProject(project) s.createClient(project, client) # force an idle time s.now=datetime.datetime(2013,4,5,6,7,8) s.clientIdle("myproject", "myclient", 0) e = ArgPrepender(s, project, client, execution) e.executionStarts( timestamp="2013-03-01 23:24:25", changelog=[]) e.executionEnds(True) return e.execution()
def test_executions(self) : s = Server('fixture') s.createServer() s.createProject("myproject") s.createClient("myproject","myclient") s.executionStarts("myproject", "myclient", "20130301-225341", timestamp="2013-03-01 22:53:41", changelog=[], ) s.executionStarts("myproject", "myclient", "20130302-101313", timestamp="2013-03-02 10:13:13", changelog=[], ) self.assertEqual(s.executions("myproject","myclient"), [ '20130301-225341', '20130302-101313', ])
def test_project_noClients(self) : s = Server("fixture") s.createServer() s.createProject("myproject") s.setProjectMetadata("myproject", description = "project description", briefDescription = "project brief description", ) s.now = datetime.datetime(2013,9,1,2,3,4) w = JsonSummary() result = w.project(s, 'myproject') self.assertMultiLineEqual(result, '{' ' "project" : "myproject",\n' ' "lastupdate" : "2013/09/01 02:03:04",\n' ' "clients" : [\n' ' ]\n' '}' )
def executionFixture(self, running = False) : project, client, execution = "myproject", "myclient", "20130301-232425" s = Server("fixture") s.createServer() s.createProject(project) s.createClient(project, client) # force an idle time s.now=datetime.datetime(2013,4,5,6,7,8) s.clientIdle(project,client, 0) e = ArgPrepender(s, project, client, execution) e.executionStarts( timestamp="2013-03-01 23:24:25", changelog=[]) e.taskStarts(1, "First task") e.commandStarts(1,1, "command line") if running : return e.execution() e.commandEnds(1,1, output="output", ok=True, info=None, stats={}) e.taskEnds(1,True) e.executionEnds(True) return e.execution()
def commandFixture(self, line, running = False, ok = None, output=None, info=None, stats = {} ) : project, client, execution = "myproject", "myclient", "20130301-232425" s = Server("fixture") s.createServer() s.createProject(project) s.createClient(project, client) e = ArgPrepender(s, project, client, execution) e.executionStarts( timestamp="2013-03-01 23:24:25", changelog=[]) e.taskStarts(1, "First task") e.commandStarts(1,1, line) if running : return e.execution().tasks[0].commands[0] e.commandEnds(1,1, output=output, ok=ok, info=info, stats=stats) e.taskEnds(1,True) e.executionEnds(True) return e.execution().tasks[0].commands[0]
output=output, ok=ok, info=info, stats=stats) if ok is False : break # Failed, fatal for the task s.taskEnds(i+1,ok) s.executionEnds(ok) print "Simulating client calls" import os s = Server("fixture") os.system("rm -rf fixture") os.system("rm -rf www") s.createServer() s.now = datetime.datetime(2000,01,02,03,04,05) s.createProject("myproject") s.createClient("myproject", "client1") s.createClient("myproject", "client2") s.createClient("myproject", "client3") emulateExecution("client1", "20130304-050607",[ ("first task", [ ("command 1", True, "output", None, dict( tests = 34, )), ]), ]) emulateExecution("client1", "20130304-050608",[ ("first task", [ ("command 1", True, "output", "Info", dict( tests = 36,
def setUpProject(self) : s = Server("fixture") s.createServer() s.createProject("myproject") return s