def create_usage(gateway, reservation_id = 'my_reservation_id'): session = gateway.Session() try: student1 = gateway._get_user(session, 'student1') initial_usage = ExperimentUsage() initial_usage.start_date = time.time() initial_usage.end_date = time.time() initial_usage.from_ip = "130.206.138.16" initial_usage.experiment_id = ExperimentId("ud-dummy","Dummy experiments") initial_usage.coord_address = CoordAddress("machine1","instance1","server1") initial_usage.reservation_id = reservation_id file1 = FileSent( 'path/to/file1', '{sha}12345', time.time() ) file2 = FileSent( 'path/to/file2', '{sha}123456', time.time(), Command.Command('response'), time.time(), file_info = 'program' ) command1 = CommandSent( Command.Command("your command1"), time.time() ) command2 = CommandSent( Command.Command("your command2"), time.time(), Command.Command("your response2"), time.time() ) initial_usage.append_command(command1) initial_usage.append_command(command2) initial_usage.append_file(file1) initial_usage.append_file(file2) initial_usage.request_info = {'facebook' : False, 'permission_scope' : 'user', 'permission_id' : student1.id} gateway.store_experiment_usage(student1.login, initial_usage) return student1, initial_usage, command1, command2, file1, file2 finally: session.close()
def test_update_command(self): student1 = self.gateway._get_user(self.session, 'student1') RESERVATION_ID1 = 'my_reservation_id1' usage1 = ExperimentUsage() usage1.start_date = time.time() usage1.end_date = time.time() usage1.from_ip = "130.206.138.16" usage1.experiment_id = ExperimentId("ud-dummy", "Dummy experiments") usage1.coord_address = CoordAddress("machine1", "instance1", "server1") usage1.reservation_id = RESERVATION_ID1 usage1.request_info = { 'facebook': False, 'permission_scope': 'user', 'permission_id': student1.id } self.gateway.store_experiment_usage(student1.login, usage1) usages = self.gateway.list_usages_per_user(student1.login) self.assertEquals(1, len(usages)) full_usage = self.gateway.retrieve_usage(usages[0].experiment_use_id) self.assertEquals(0, len(full_usage.commands)) command1 = CommandSent(Command.Command("your command"), time.time()) command_id = self.gateway.append_command(RESERVATION_ID1, command1) full_usage = self.gateway.retrieve_usage(usages[0].experiment_use_id) self.assertEquals("your command", full_usage.commands[0].command.commandstring) self.assertEquals(Command.NullCommand(), full_usage.commands[0].response) self.gateway.update_command(command_id, Command.Command("the response"), time.time()) full_usage = self.gateway.retrieve_usage(usages[0].experiment_use_id) self.assertEquals("your command", full_usage.commands[0].command.commandstring) self.assertEquals("the response", full_usage.commands[0].response.commandstring)
def create_usage(gateway, reservation_id = 'my_reservation_id'): session = gateway.Session() student1 = gateway._get_user(session, 'student1') initial_usage = ExperimentUsage() initial_usage.start_date = time.time() initial_usage.end_date = time.time() initial_usage.from_ip = "130.206.138.16" initial_usage.experiment_id = ExperimentId("ud-dummy","Dummy experiments") initial_usage.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:instance1@machine1") initial_usage.reservation_id = reservation_id file1 = FileSent( 'path/to/file1', '{sha}12345', time.time() ) file2 = FileSent( 'path/to/file2', '{sha}123456', time.time(), Command.Command('response'), time.time(), file_info = 'program' ) command1 = CommandSent( Command.Command("your command1"), time.time() ) command2 = CommandSent( Command.Command("your command2"), time.time(), Command.Command("your response2"), time.time() ) initial_usage.append_command(command1) initial_usage.append_command(command2) initial_usage.append_file(file1) initial_usage.append_file(file2) initial_usage.request_info = {'facebook' : False} gateway.store_experiment_usage(student1.login, initial_usage) return student1, initial_usage, command1, command2, file1, file2
def to_business_light(self): usage = ExperimentUsage() usage.experiment_use_id = self.id usage.start_date = _splitted_utc_datetime_to_timestamp(self.start_date, self.start_date_micro) usage.end_date = _splitted_utc_datetime_to_timestamp(self.end_date, self.end_date_micro) usage.from_ip = self.origin usage.reservation_id = self.reservation_id usage.experiment_id = ExperimentId(self.experiment.name, self.experiment.category.name) usage.coord_address = CoordAddress.translate(self.coord_address) request_info = {} for prop in self.properties: name = prop.property_name.name value = prop.value request_info[name] = value usage.request_info = request_info return usage
def test_update_command(self): session = self.gateway.Session() student1 = self.gateway._get_user(session, 'student1') RESERVATION_ID1 = 'my_reservation_id1' usage1 = ExperimentUsage() usage1.start_date = time.time() usage1.end_date = time.time() usage1.from_ip = "130.206.138.16" usage1.experiment_id = ExperimentId("ud-dummy","Dummy experiments") usage1.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:instance1@machine1") usage1.reservation_id = RESERVATION_ID1 usage1.request_info = {'facebook' : False} self.gateway.store_experiment_usage(student1.login, usage1) usages = self.gateway.list_usages_per_user(student1.login) self.assertEquals(1, len(usages)) full_usage = self.gateway.retrieve_usage(usages[0].experiment_use_id) self.assertEquals(0, len(full_usage.commands)) command1 = CommandSent( Command.Command("your command"), time.time() ) command_id = self.gateway.append_command( RESERVATION_ID1, command1 ) full_usage = self.gateway.retrieve_usage(usages[0].experiment_use_id) self.assertEquals("your command", full_usage.commands[0].command.commandstring) self.assertEquals(Command.NullCommand(), full_usage.commands[0].response) self.gateway.update_command(command_id, Command.Command("the response"), time.time()) full_usage = self.gateway.retrieve_usage(usages[0].experiment_use_id) self.assertEquals("your command", full_usage.commands[0].command.commandstring) self.assertEquals("the response", full_usage.commands[0].response.commandstring)
def test_update_file(self): student1 = self.gateway._get_user(self.session, 'student1') RESERVATION_ID1 = 'my_reservation_id1' RESERVATION_ID2 = 'my_reservation_id2' usage1 = ExperimentUsage() usage1.start_date = time.time() usage1.end_date = time.time() usage1.from_ip = "130.206.138.16" usage1.experiment_id = ExperimentId("ud-dummy", "Dummy experiments") usage1.coord_address = CoordAddress("machine1", "instance1", "server1") usage1.reservation_id = RESERVATION_ID1 usage1.request_info = { 'facebook': False, 'permission_scope': 'user', 'permission_id': student1.id } usage2 = ExperimentUsage() usage2.start_date = time.time() usage2.end_date = time.time() usage2.from_ip = "130.206.138.17" usage2.experiment_id = ExperimentId("ud-dummy", "Dummy experiments") usage2.coord_address = CoordAddress("machine1", "instance1", "server1") usage2.reservation_id = RESERVATION_ID2 usage2.request_info = { 'facebook': False, 'permission_scope': 'user', 'permission_id': student1.id } self.gateway.store_experiment_usage(student1.login, usage1) self.gateway.store_experiment_usage(student1.login, usage2) file_sent1 = FileSent('path/to/file2', '{sha}123456', time.time(), file_info='program') usages = self.gateway.list_usages_per_user(student1.login) self.assertEquals(2, len(usages)) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(0, len(full_usage1.commands)) self.assertEquals(0, len(full_usage2.commands)) self.assertEquals(0, len(full_usage1.sent_files)) self.assertEquals(0, len(full_usage2.sent_files)) file_sent_id = self.gateway.append_file(RESERVATION_ID1, file_sent1) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(0, len(full_usage1.commands)) self.assertEquals(0, len(full_usage2.commands)) self.assertEquals(1, len(full_usage1.sent_files)) self.assertEquals(0, len(full_usage2.sent_files)) self.assertEquals(None, full_usage1.sent_files[0].response.commandstring) self.gateway.update_file(file_sent_id, Command.Command("response"), time.time()) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(0, len(full_usage1.commands)) self.assertEquals(0, len(full_usage2.commands)) self.assertEquals(1, len(full_usage1.sent_files)) self.assertEquals(0, len(full_usage2.sent_files)) self.assertEquals("response", full_usage1.sent_files[0].response.commandstring)
def test_add_command(self): student1 = self.gateway._get_user(self.session, 'student1') RESERVATION_ID1 = 'my_reservation_id1' RESERVATION_ID2 = 'my_reservation_id2' usage1 = ExperimentUsage() usage1.start_date = time.time() usage1.end_date = time.time() usage1.from_ip = "130.206.138.16" usage1.experiment_id = ExperimentId("ud-dummy", "Dummy experiments") usage1.coord_address = CoordAddress("machine1", "instance1", "server1") usage1.reservation_id = RESERVATION_ID1 command1 = CommandSent(Command.Command("your command1"), time.time(), Command.Command("your response1"), time.time()) usage1.append_command(command1) usage1.request_info = { 'facebook': False, 'permission_scope': 'user', 'permission_id': student1.id } usage2 = ExperimentUsage() usage2.start_date = time.time() usage2.end_date = time.time() usage2.from_ip = "130.206.138.17" usage2.experiment_id = ExperimentId("ud-dummy", "Dummy experiments") usage2.coord_address = CoordAddress("machine1", "instance1", "server1") usage2.reservation_id = RESERVATION_ID2 command2 = CommandSent(Command.Command("your command2"), time.time(), Command.Command("your response2"), time.time()) usage2.append_command(command2) usage2.request_info = { 'facebook': False, 'permission_scope': 'user', 'permission_id': student1.id } self.gateway.store_experiment_usage(student1.login, usage1) self.gateway.store_experiment_usage(student1.login, usage2) batch_command = CommandSent(Command.Command("@@@batch@@@"), time.time(), Command.Command("batch"), time.time()) finishing_command = CommandSent(Command.Command("@@@finish@@@"), time.time(), Command.Command("finish"), time.time()) usages = self.gateway.list_usages_per_user(student1.login) self.assertEquals(2, len(usages)) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(1, len(full_usage1.commands)) self.assertEquals(1, len(full_usage2.commands)) self.gateway.append_command(RESERVATION_ID1, batch_command) self.gateway.append_command(RESERVATION_ID2, finishing_command) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(2, len(full_usage1.commands)) self.assertEquals(2, len(full_usage2.commands)) self.assertEquals("@@@batch@@@", full_usage1.commands[1].command.commandstring) self.assertEquals("batch", full_usage1.commands[1].response.commandstring) self.assertEquals("@@@finish@@@", full_usage2.commands[1].command.commandstring) self.assertEquals("finish", full_usage2.commands[1].response.commandstring)
def test_update_file(self): session = self.gateway.Session() student1 = self.gateway._get_user(session, 'student1') RESERVATION_ID1 = 'my_reservation_id1' RESERVATION_ID2 = 'my_reservation_id2' usage1 = ExperimentUsage() usage1.start_date = time.time() usage1.end_date = time.time() usage1.from_ip = "130.206.138.16" usage1.experiment_id = ExperimentId("ud-dummy","Dummy experiments") usage1.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:instance1@machine1") usage1.reservation_id = RESERVATION_ID1 usage1.request_info = {'facebook' : False} usage2 = ExperimentUsage() usage2.start_date = time.time() usage2.end_date = time.time() usage2.from_ip = "130.206.138.17" usage2.experiment_id = ExperimentId("ud-dummy","Dummy experiments") usage2.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:instance1@machine1") usage2.reservation_id = RESERVATION_ID2 usage2.request_info = {'facebook' : False} self.gateway.store_experiment_usage(student1.login, usage1) self.gateway.store_experiment_usage(student1.login, usage2) file_sent1 = FileSent( 'path/to/file2', '{sha}123456', time.time(), file_info = 'program' ) usages = self.gateway.list_usages_per_user(student1.login) self.assertEquals(2, len(usages)) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(0, len(full_usage1.commands)) self.assertEquals(0, len(full_usage2.commands)) self.assertEquals(0, len(full_usage1.sent_files)) self.assertEquals(0, len(full_usage2.sent_files)) file_sent_id = self.gateway.append_file(RESERVATION_ID1, file_sent1) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(0, len(full_usage1.commands)) self.assertEquals(0, len(full_usage2.commands)) self.assertEquals(1, len(full_usage1.sent_files)) self.assertEquals(0, len(full_usage2.sent_files)) self.assertEquals(None, full_usage1.sent_files[0].response.commandstring) self.gateway.update_file(file_sent_id, Command.Command("response"), time.time()) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(0, len(full_usage1.commands)) self.assertEquals(0, len(full_usage2.commands)) self.assertEquals(1, len(full_usage1.sent_files)) self.assertEquals(0, len(full_usage2.sent_files)) self.assertEquals("response", full_usage1.sent_files[0].response.commandstring)
def test_add_file(self): session = self.gateway.Session() student1 = self.gateway._get_user(session, 'student1') RESERVATION_ID1 = 'my_reservation_id1' RESERVATION_ID2 = 'my_reservation_id2' usage1 = ExperimentUsage() usage1.start_date = time.time() usage1.end_date = time.time() usage1.from_ip = "130.206.138.16" usage1.experiment_id = ExperimentId("ud-dummy","Dummy experiments") usage1.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:instance1@machine1") usage1.reservation_id = RESERVATION_ID1 command1 = CommandSent( Command.Command("your command1"), time.time(), Command.Command("your response1"), time.time() ) usage1.append_command(command1) usage1.request_info = {'facebook' : False} usage2 = ExperimentUsage() usage2.start_date = time.time() usage2.end_date = time.time() usage2.from_ip = "130.206.138.17" usage2.experiment_id = ExperimentId("ud-dummy","Dummy experiments") usage2.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:instance1@machine1") usage2.reservation_id = RESERVATION_ID2 command2 = CommandSent( Command.Command("your command2"), time.time(), Command.Command("your response2"), time.time() ) usage2.append_command(command2) usage2.request_info = {'facebook' : False} self.gateway.store_experiment_usage(student1.login, usage1) self.gateway.store_experiment_usage(student1.login, usage2) file_sent1 = FileSent( 'path/to/file2', '{sha}123456', time.time(), Command.Command('response'), time.time(), file_info = 'program' ) usages = self.gateway.list_usages_per_user(student1.login) self.assertEquals(2, len(usages)) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(1, len(full_usage1.commands)) self.assertEquals(1, len(full_usage2.commands)) self.assertEquals(0, len(full_usage1.sent_files)) self.assertEquals(0, len(full_usage2.sent_files)) self.gateway.append_file(RESERVATION_ID1, file_sent1) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(1, len(full_usage1.commands)) self.assertEquals(1, len(full_usage2.commands)) self.assertEquals(1, len(full_usage1.sent_files)) self.assertEquals(0, len(full_usage2.sent_files)) self.assertEquals("response", full_usage1.sent_files[0].response.commandstring)
def test_add_command(self): session = self.gateway.Session() student1 = self.gateway._get_user(session, 'student1') RESERVATION_ID1 = 'my_reservation_id1' RESERVATION_ID2 = 'my_reservation_id2' usage1 = ExperimentUsage() usage1.start_date = time.time() usage1.end_date = time.time() usage1.from_ip = "130.206.138.16" usage1.experiment_id = ExperimentId("ud-dummy","Dummy experiments") usage1.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:instance1@machine1") usage1.reservation_id = RESERVATION_ID1 command1 = CommandSent( Command.Command("your command1"), time.time(), Command.Command("your response1"), time.time() ) usage1.append_command(command1) usage1.request_info = {'facebook' : False} usage2 = ExperimentUsage() usage2.start_date = time.time() usage2.end_date = time.time() usage2.from_ip = "130.206.138.17" usage2.experiment_id = ExperimentId("ud-dummy","Dummy experiments") usage2.coord_address = CoordAddress.CoordAddress("machine1","instance1","server1") #.translate_address("server1:instance1@machine1") usage2.reservation_id = RESERVATION_ID2 command2 = CommandSent( Command.Command("your command2"), time.time(), Command.Command("your response2"), time.time() ) usage2.append_command(command2) usage2.request_info = {'facebook' : False} self.gateway.store_experiment_usage(student1.login, usage1) self.gateway.store_experiment_usage(student1.login, usage2) batch_command = CommandSent( Command.Command("@@@batch@@@"), time.time(), Command.Command("batch"), time.time() ) finishing_command = CommandSent( Command.Command("@@@finish@@@"), time.time(), Command.Command("finish"), time.time() ) usages = self.gateway.list_usages_per_user(student1.login) self.assertEquals(2, len(usages)) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(1, len(full_usage1.commands)) self.assertEquals(1, len(full_usage2.commands)) self.gateway.append_command(RESERVATION_ID1, batch_command) self.gateway.append_command(RESERVATION_ID2, finishing_command) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(2, len(full_usage1.commands)) self.assertEquals(2, len(full_usage2.commands)) self.assertEquals("@@@batch@@@", full_usage1.commands[1].command.commandstring) self.assertEquals("batch", full_usage1.commands[1].response.commandstring) self.assertEquals("@@@finish@@@", full_usage2.commands[1].command.commandstring) self.assertEquals("finish", full_usage2.commands[1].response.commandstring)
def _store_two_reservations(self): # # Two users: student2, that started before "any" but finished after "any", and "any" then. Both use # the same experiment. # db_gw = self.ups._db_manager session = db_gw.Session() try: student1 = db_gw._get_user(session, 'student1') student2 = db_gw._get_user(session, 'student2') finally: session.close() reservation_id1 = SessionId.SessionId(u'5') initial_usage1 = ExperimentUsage() initial_usage1.start_date = time.time() initial_usage1.end_date = time.time() initial_usage1.from_ip = u"130.206.138.16" initial_usage1.experiment_id = ExperimentId(u"ud-dummy",u"Dummy experiments") initial_usage1.coord_address = CoordAddress(u"machine1",u"instance1",u"server1") initial_usage1.reservation_id = reservation_id1.id initial_usage1.request_info = { 'permission_scope' : 'user', 'permission_id' : student1.id } valid_file_path = os.path.relpath(os.sep.join(('test','__init__.py'))) file1 = FileSent( valid_file_path, u'{sha}12345', time.time()) file2 = FileSent( valid_file_path, u'{sha}123456', time.time(), Command(u'response'), time.time(), file_info = u'program') command1 = CommandSent( Command(u"your command1"), time.time()) command2 = CommandSent( Command(u"your command2"), time.time(), Command(u"your response2"), time.time()) initial_usage1.append_command(command1) initial_usage1.append_command(command2) initial_usage1.append_file(file1) initial_usage1.append_file(file2) reservation_id2 = SessionId.SessionId(u'6') initial_usage2 = ExperimentUsage() initial_usage2.start_date = time.time() initial_usage2.end_date = time.time() initial_usage2.from_ip = u"130.206.138.16" initial_usage2.experiment_id = ExperimentId(u"ud-dummy",u"Dummy experiments") initial_usage2.coord_address = CoordAddress(u"machine1",u"instance1",u"server1") initial_usage2.reservation_id = reservation_id2.id initial_usage2.request_info = { 'permission_scope' : 'user', 'permission_id' : student2.id } file1 = FileSent( valid_file_path, u'{sha}12345', time.time()) file2 = FileSent( valid_file_path, u'{sha}123456', time.time(), Command(u'response'), time.time(), file_info = u'program') command1 = CommandSent( Command(u"your command1"), time.time()) command2 = CommandSent( Command(u"your command2"), time.time(), Command(u"your response2"), time.time()) initial_usage2.append_command(command1) initial_usage2.append_command(command2) initial_usage2.append_file(file1) initial_usage2.append_file(file2) self.ups._db_manager.store_experiment_usage('student1', initial_usage1) self.ups._db_manager.store_experiment_usage('student2', initial_usage2) return (reservation_id1, reservation_id2), (initial_usage1, initial_usage2)
def _store_two_reservations(self): # # Two users: student2, that started before "any" but finished after "any", and "any" then. Both use # the same experiment. # reservation_id1 = SessionId.SessionId(u'5') initial_usage1 = ExperimentUsage() initial_usage1.start_date = time.time() initial_usage1.end_date = time.time() initial_usage1.from_ip = u"130.206.138.16" initial_usage1.experiment_id = ExperimentId(u"ud-dummy",u"Dummy experiments") initial_usage1.coord_address = CoordAddress.CoordAddress(u"machine1",u"instance1",u"server1") #.translate_address("server1:instance1@machine1") initial_usage1.reservation_id = reservation_id1.id valid_file_path = os.path.relpath(os.sep.join(('test','__init__.py'))) file1 = FileSent( valid_file_path, u'{sha}12345', time.time()) file2 = FileSent( valid_file_path, u'{sha}123456', time.time(), Command(u'response'), time.time(), file_info = u'program') command1 = CommandSent( Command(u"your command1"), time.time()) command2 = CommandSent( Command(u"your command2"), time.time(), Command(u"your response2"), time.time()) initial_usage1.append_command(command1) initial_usage1.append_command(command2) initial_usage1.append_file(file1) initial_usage1.append_file(file2) reservation_id2 = SessionId.SessionId(u'6') initial_usage2 = ExperimentUsage() initial_usage2.start_date = time.time() initial_usage2.end_date = time.time() initial_usage2.from_ip = u"130.206.138.16" initial_usage2.experiment_id = ExperimentId(u"ud-dummy",u"Dummy experiments") initial_usage2.coord_address = CoordAddress.CoordAddress(u"machine1",u"instance1",u"server1") #.translate_address("server1:instance1@machine1") initial_usage2.reservation_id = reservation_id2.id file1 = FileSent( valid_file_path, u'{sha}12345', time.time()) file2 = FileSent( valid_file_path, u'{sha}123456', time.time(), Command(u'response'), time.time(), file_info = u'program') command1 = CommandSent( Command(u"your command1"), time.time()) command2 = CommandSent( Command(u"your command2"), time.time(), Command(u"your response2"), time.time()) initial_usage2.append_command(command1) initial_usage2.append_command(command2) initial_usage2.append_file(file1) initial_usage2.append_file(file2) self.ups._db_manager._gateway.store_experiment_usage('student1', initial_usage1) self.ups._db_manager._gateway.store_experiment_usage('student2', initial_usage2) return (reservation_id1, reservation_id2), (initial_usage1, initial_usage2)
def test_add_file(self): student1 = self.gateway._get_user(self.session, 'student1') RESERVATION_ID1 = 'my_reservation_id1' RESERVATION_ID2 = 'my_reservation_id2' usage1 = ExperimentUsage() usage1.start_date = time.time() usage1.end_date = time.time() usage1.from_ip = "130.206.138.16" usage1.experiment_id = ExperimentId("ud-dummy","Dummy experiments") usage1.coord_address = CoordAddress("machine1","instance1","server1") usage1.reservation_id = RESERVATION_ID1 command1 = CommandSent( Command.Command("your command1"), time.time(), Command.Command("your response1"), time.time() ) usage1.append_command(command1) usage1.request_info = {'facebook' : False, 'permission_scope' : 'user', 'permission_id' : student1.id} usage2 = ExperimentUsage() usage2.start_date = time.time() usage2.end_date = time.time() usage2.from_ip = "130.206.138.17" usage2.experiment_id = ExperimentId("ud-dummy","Dummy experiments") usage2.coord_address = CoordAddress("machine1","instance1","server1") usage2.reservation_id = RESERVATION_ID2 command2 = CommandSent( Command.Command("your command2"), time.time(), Command.Command("your response2"), time.time() ) usage2.append_command(command2) usage2.request_info = {'facebook' : False, 'permission_scope' : 'user', 'permission_id' : student1.id} self.gateway.store_experiment_usage(student1.login, usage1) self.gateway.store_experiment_usage(student1.login, usage2) file_sent1 = FileSent( 'path/to/file2', '{sha}123456', time.time(), Command.Command('response'), time.time(), file_info = 'program' ) usages = self.gateway.list_usages_per_user(student1.login) self.assertEquals(2, len(usages)) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(1, len(full_usage1.commands)) self.assertEquals(1, len(full_usage2.commands)) self.assertEquals(0, len(full_usage1.sent_files)) self.assertEquals(0, len(full_usage2.sent_files)) self.gateway.append_file(RESERVATION_ID1, file_sent1) full_usage1 = self.gateway.retrieve_usage(usages[0].experiment_use_id) full_usage2 = self.gateway.retrieve_usage(usages[1].experiment_use_id) self.assertEquals(1, len(full_usage1.commands)) self.assertEquals(1, len(full_usage2.commands)) self.assertEquals(1, len(full_usage1.sent_files)) self.assertEquals(0, len(full_usage2.sent_files)) self.assertEquals("response", full_usage1.sent_files[0].response.commandstring)