def testZExecuteAsync(self):
        pool = Midgard.ExecutionPool(max_n_threads=2)
        self.job_one.connect("execution-end", self.executionEndCallbackAsyncOne, None)
        self.job_two.connect("execution-end", self.executionEndCallbackAsyncTwo, None)
        pool.push(self.job_one)
        pool.push(self.job_two)
        time.sleep(1)
        pool = None

        self.assertEqual(self.async_callback_msg_end_one, "DONE END ASYNC ONE")
        self.assertEqual(self.async_callback_msg_end_two, "DONE END ASYNC TWO")

        deleted_one = self.bookstore_one.get_property("metadata").get_property("deleted")
        self.assertTrue(deleted_one)
        deleted_two = self.bookstore_two.get_property("metadata").get_property("deleted")
        self.assertTrue(deleted_two)

        bookstores = BookStoreQuery.findByName(self.mgd, self.bookstore_one_name)
        self.assertEqual(len(bookstores), 0)
        bookstores = BookStoreQuery.findByName(self.mgd, self.bookstore_two_name)
        self.assertEqual(len(bookstores), 0)

        self.assertEqual(self.job_one.is_running(), False)
        self.assertEqual(self.job_one.is_failed(), False)
        self.assertEqual(self.job_one.is_executed(), True)
        self.assertEqual(self.job_two.is_running(), False)
        self.assertEqual(self.job_two.is_failed(), False)
        self.assertEqual(self.job_two.is_executed(), True)
  def testZExecuteAsync(self):
    pool = Midgard.ExecutionPool(max_n_threads = 2)
    self.job_one.connect("execution-end", self.executionEndCallbackAsyncOne, None)
    self.job_two.connect("execution-end", self.executionEndCallbackAsyncTwo, None)
    pool.push(self.job_one)
    pool.push(self.job_two)
    time.sleep(1)
    pool = None

    self.assertEqual(self.async_callback_msg_end_one, "DONE END ASYNC ONE")
    self.assertEqual(self.async_callback_msg_end_two, "DONE END ASYNC TWO")

    deleted_one = self.bookstore_one.get_property("metadata").get_property("deleted")
    self.assertTrue(deleted_one)
    deleted_two = self.bookstore_two.get_property("metadata").get_property("deleted")
    self.assertTrue(deleted_two)
    
    bookstores = BookStoreQuery.findByName(self.mgd, self.bookstore_one_name)
    self.assertEqual(len(bookstores), 0)
    bookstores = BookStoreQuery.findByName(self.mgd, self.bookstore_two_name)
    self.assertEqual(len(bookstores), 0)

    self.assertEqual(self.job_one.is_running(), False)
    self.assertEqual(self.job_one.is_failed(), False)
    self.assertEqual(self.job_one.is_executed(), True)
    self.assertEqual(self.job_two.is_running(), False)
    self.assertEqual(self.job_two.is_failed(), False)
    self.assertEqual(self.job_two.is_executed(), True)
    def testZExecute(self):
        # job one
        self.job_one.connect("execution-start", self.executionStartCallback, None)
        self.job_one.connect("execution-end", self.executionEndCallback, None)
        self.job_one.execute()
        self.assertTrue(self.job_one.is_valid())
        self.assertNotEqual(self.callback_msg_start, None)
        self.assertEqual(self.callback_msg_start, "DONE START")
        self.assertNotEqual(self.callback_msg_end, None)
        self.assertEqual(self.callback_msg_end, "DONE END")
        bookstores = BookStoreQuery.findByName(self.mgd, self.bookstore_one_name)
        self.assertEqual(len(bookstores), 0)
        self.assertEqual(self.job_one.is_running(), False)
        self.assertEqual(self.job_one.is_failed(), False)
        self.assertEqual(self.job_one.is_executed(), True)

        # job two
        self.job_two.connect("execution-start", self.executionStartCallback, None)
        self.job_two.connect("execution-end", self.executionEndCallback, None)
        self.job_two.execute()
        self.assertTrue(self.job_two.is_valid())
        self.assertNotEqual(self.callback_msg_start, None)
        self.assertEqual(self.callback_msg_start, "DONE START")
        self.assertNotEqual(self.callback_msg_end, None)
        self.assertEqual(self.callback_msg_end, "DONE END")
        bookstores = BookStoreQuery.findByName(self.mgd, self.bookstore_two_name)
        self.assertEqual(len(bookstores), 0)
        self.assertEqual(self.job_two.is_running(), False)
        self.assertEqual(self.job_two.is_failed(), False)
        self.assertEqual(self.job_two.is_executed(), True)

        deleted_one = self.bookstore_one.get_property("metadata").get_property("deleted")
        self.assertTrue(deleted_one)
        deleted_two = self.bookstore_two.get_property("metadata").get_property("deleted")
        self.assertTrue(deleted_two)
 def testZExecuteAsync(self):
     self.bookstore_one.set_property("name", self.bookstore_one_update_name)
     self.bookstore_two.set_property("name", self.bookstore_two_update_name)
     pool = Midgard.ExecutionPool(max_n_threads=2)
     self.job_one.connect("execution-end", self.executionEndCallbackAsync,
                          None)
     self.job_two.connect("execution-end", self.executionEndCallbackAsync,
                          None)
     pool.push(self.job_one)
     pool.push(self.job_two)
     time.sleep(1)
     pool = None
     time.sleep(1)
     self.assertEqual(self.async_callback_msg_end, "DONE END ASYNC")
     bookstores = BookStoreQuery.findByName(self.mgd,
                                            self.bookstore_one_update_name)
     self.assertEqual(len(bookstores), 1)
     bookstores = BookStoreQuery.findByName(self.mgd,
                                            self.bookstore_two_update_name)
     self.assertEqual(len(bookstores), 1)
     self.assertEqual(self.job_one.is_running(), False)
     self.assertEqual(self.job_one.is_failed(), False)
     self.assertEqual(self.job_one.is_executed(), True)
     self.assertEqual(self.job_two.is_running(), False)
     self.assertEqual(self.job_two.is_failed(), False)
     self.assertEqual(self.job_two.is_executed(), True)
  def testZExecute(self):
    # job one
    self.job_one.connect("execution-start", self.executionStartCallback, None)
    self.job_one.connect("execution-end", self.executionEndCallback, None)
    self.job_one.execute()
    self.assertTrue(self.job_one.is_valid())
    self.assertNotEqual(self.callback_msg_start, None)
    self.assertEqual(self.callback_msg_start, "DONE START")
    self.assertNotEqual(self.callback_msg_end, None)
    self.assertEqual(self.callback_msg_end, "DONE END")
    bookstores = BookStoreQuery.findByName(self.mgd, self.bookstore_one_name)
    self.assertEqual(len(bookstores), 0)
    self.assertEqual(self.job_one.is_running(), False)
    self.assertEqual(self.job_one.is_failed(), False)
    self.assertEqual(self.job_one.is_executed(), True)

    # job two
    self.job_two.connect("execution-start", self.executionStartCallback, None)
    self.job_two.connect("execution-end", self.executionEndCallback, None)
    self.job_two.execute()
    self.assertTrue(self.job_two.is_valid())
    self.assertNotEqual(self.callback_msg_start, None)
    self.assertEqual(self.callback_msg_start, "DONE START")
    self.assertNotEqual(self.callback_msg_end, None)
    self.assertEqual(self.callback_msg_end, "DONE END")
    bookstores = BookStoreQuery.findByName(self.mgd, self.bookstore_two_name)
    self.assertEqual(len(bookstores), 0)
    self.assertEqual(self.job_two.is_running(), False)
    self.assertEqual(self.job_two.is_failed(), False)
    self.assertEqual(self.job_two.is_executed(), True)

    deleted_one = self.bookstore_one.get_property("metadata").get_property("deleted")
    self.assertTrue(deleted_one)
    deleted_two = self.bookstore_two.get_property("metadata").get_property("deleted")
    self.assertTrue(deleted_two)
 def testDelete_04_ObjectInWorkspace_FooBarFooBar(self):
     # set /Foo/Bar/FooBar workspace and get object
     workspace = Midgard.Workspace()
     self.manager.get_workspace_by_path(workspace, "/Foo/Bar/FooBar")
     self.mgd.set_workspace(workspace)
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 1)
     bookstore = bookstores[0]
     # purge
     self.assertTrue(bookstore.purge(False))
     # do not expect object from /Foo/Bar/FooBar
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 0)
     # expect object from /Foo/Bar
     workspace = Midgard.Workspace()
     self.manager.get_workspace_by_path(workspace, "/Foo/Bar")
     self.mgd.set_workspace(workspace)
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 1)
     # expect object from /Foo
     workspace = Midgard.Workspace()
     self.manager.get_workspace_by_path(workspace, "/Foo")
     self.mgd.set_workspace(workspace)
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 1)
 def testCreate_03_ObjectInWorkspace_FooBarFooBar(self):
     # set new workspace so we can query object from there
     workspace = Midgard.Workspace()
     self.manager.get_workspace_by_path(workspace, "/Foo/Bar/FooBar")
     self.mgd.set_workspace(workspace)
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 0)
     bookstore = Midgard.Object.factory(self.mgd, "gir_test_book_store",
                                        None)
     bookstore.set_property("name", self.bookstoreName)
     bookstore.set_property("extra", self.extraFooBarFooBar)
     self.assertTrue(bookstore.create())
     # test created object
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 1)
     bookstore = bookstores[0]
     self.assertEqual(bookstore.get_property("extra"),
                      self.extraFooBarFooBar)
     # set default workspace and get object
     workspace = Midgard.Workspace()
     self.manager.get_workspace_by_path(workspace, "/Foo")
     self.mgd.set_workspace(workspace)
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 1)
     bookstore = bookstores[0]
     self.assertEqual(bookstore.get_property("extra"), self.extraFoo)
  def testZExecuteAsync(self):
    pool = Midgard.ExecutionPool(max_n_threads = 2)
    self.job_one.connect("execution-end", self.executionEndCallbackAsync, None)
    self.job_two.connect("execution-end", self.executionEndCallbackAsync, None)
    pool.push(self.job_one)
    pool.push(self.job_two)
    time.sleep(1)
    pool = None

    self.assertEqual(self.async_callback_msg_end, "DONE END ASYNC")
  
    bookstores = BookStoreQuery.findByName(self.mgd, self.bookstore_one_name)
    self.assertEqual(len(bookstores), 0)
    bookstores = BookStoreQuery.findByName(self.mgd, self.bookstore_two_name)
    self.assertEqual(len(bookstores), 0)

    self.bookstore_one = None
    self.bookstore_two = None
    
    self.assertEqual(self.job_one.is_running(), False)
    self.assertEqual(self.job_one.is_failed(), False)
    self.assertEqual(self.job_one.is_executed(), True)
    self.assertEqual(self.job_two.is_running(), False)
    self.assertEqual(self.job_two.is_failed(), False)
    self.assertEqual(self.job_two.is_executed(), True)
 def testDelete_04_ObjectInWorkspace_FooBarFooBar(self):
   # set /Foo/Bar/FooBar workspace and get object
   workspace = Midgard.Workspace()
   self.manager.get_workspace_by_path(workspace, "/Foo/Bar/FooBar")
   self.mgd.set_workspace(workspace)
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
   self.assertEqual(len(bookstores), 1)
   bookstore = bookstores[0]
   # purge 
   self.assertTrue(bookstore.purge(False))
   # do not expect object from /Foo/Bar/FooBar
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)        
   self.assertEqual(len(bookstores), 0)
   # expect object from /Foo/Bar
   workspace = Midgard.Workspace()
   self.manager.get_workspace_by_path(workspace, "/Foo/Bar")
   self.mgd.set_workspace(workspace)
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
   self.assertEqual(len(bookstores), 1)
   # expect object from /Foo
   workspace = Midgard.Workspace()
   self.manager.get_workspace_by_path(workspace, "/Foo")
   self.mgd.set_workspace(workspace)
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
   self.assertEqual(len(bookstores), 1)
 def testDelete_06_ObjectInWorkspaceContext_FooBarFooBar(self):
     # set /Foo context and get object
     context = Midgard.WorkspaceContext()
     self.manager.get_workspace_by_path(context, "/Foo")
     self.mgd.set_workspace(context)
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 1)
     bookstore = bookstores[0]
     self.assertTrue(bookstore.purge(False))
     # expect object from /Foo/Bar
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 0)
 def testDelete_06_ObjectInWorkspaceContext_FooBarFooBar(self):
   # set /Foo context and get object
   context = Midgard.WorkspaceContext()
   self.manager.get_workspace_by_path(context, "/Foo")
   self.mgd.set_workspace(context)
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
   self.assertEqual(len(bookstores), 1)
   bookstore = bookstores[0]
   self.assertTrue(bookstore.purge(False))
   # expect object from /Foo/Bar
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)        
   self.assertEqual(len(bookstores), 0)
 def testCreate_01_ObjectInWorkspaceContext_Foo(self):
   bookstore = Midgard.Object.factory(self.mgd, "gir_test_book_store", None)
   bookstore.set_property("name", self.bookstoreName)
   bookstore.set_property("extra", self.extraFoo)
   self.assertTrue(bookstore.save())
   # set new context so we can query object from there
   context = Midgard.WorkspaceContext()
   self.manager.get_workspace_by_path(context, "/Foo/Bar")
   self.mgd.set_workspace(context)
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
   self.assertEqual(len(bookstores), 1)
 def testCreate_01_ObjectInWorkspaceContext_Foo(self):
     bookstore = Midgard.Object.factory(self.mgd, "gir_test_book_store",
                                        None)
     bookstore.set_property("name", self.bookstoreName)
     bookstore.set_property("extra", self.extraFoo)
     self.assertTrue(bookstore.save())
     # set new context so we can query object from there
     context = Midgard.WorkspaceContext()
     self.manager.get_workspace_by_path(context, "/Foo/Bar")
     self.mgd.set_workspace(context)
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 1)
 def testCreate_02_ObjectInWorkspaceContext_FooBar(self):
     # set new context so we can query object from there
     context = Midgard.WorkspaceContext()
     self.manager.get_workspace_by_path(context, "/Foo/Bar")
     self.mgd.set_workspace(context)
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 1)
     bookstore = bookstores[0]
     bookstore.set_property("extra", self.extraFooBar)
     self.assertTrue(bookstore.save())
     # test updated object
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 1)
     bookstore = bookstores[0]
     self.assertEqual(bookstore.get_property("extra"), self.extraFooBar)
     # set default context and get object
     context = Midgard.WorkspaceContext()
     self.manager.get_workspace_by_path(context, "/Foo")
     self.mgd.set_workspace(context)
     bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
     self.assertEqual(len(bookstores), 1)
     bookstore = bookstores[0]
     self.assertEqual(bookstore.get_property("extra"), self.extraFoo)
 def testCreate_03_ObjectInWorkspaceContext_FooBarFooBar(self):
   # set new context so we can query object from there
   context = Midgard.WorkspaceContext()
   self.manager.get_workspace_by_path(context, "/Foo/Bar/FooBar")
   self.mgd.set_workspace(context)
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
   self.assertEqual(len(bookstores), 1)
   bookstore = bookstores[0]
   bookstore.set_property("extra", self.extraFooBarFooBar)
   self.assertTrue(bookstore.save())
   # test updated object
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
   self.assertEqual(len(bookstores), 1)
   bookstore = bookstores[0]
   self.assertEqual(bookstore.get_property("extra"), self.extraFooBarFooBar)
   # set default context and get object
   context = Midgard.WorkspaceContext()
   self.manager.get_workspace_by_path(context, "/Foo")
   self.mgd.set_workspace(context)
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)        
   self.assertEqual(len(bookstores), 1)
   bookstore = bookstores[0]
   self.assertEqual(bookstore.get_property("extra"), self.extraFoo)
 def testCreate_03_ObjectInWorkspace_FooBarFooBar(self):
   # set new workspace so we can query object from there
   workspace = Midgard.Workspace()
   self.manager.get_workspace_by_path(workspace, "/Foo/Bar/FooBar")
   self.mgd.set_workspace(workspace)
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
   self.assertEqual(len(bookstores), 0)
   bookstore = Midgard.Object.factory(self.mgd, "gir_test_book_store", None)
   bookstore.set_property("name", self.bookstoreName)
   bookstore.set_property("extra", self.extraFooBarFooBar)
   self.assertTrue(bookstore.create())
   # test created object
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)
   self.assertEqual(len(bookstores), 1)
   bookstore = bookstores[0]
   self.assertEqual(bookstore.get_property("extra"), self.extraFooBarFooBar)
   # set default workspace and get object
   workspace = Midgard.Workspace()
   self.manager.get_workspace_by_path(workspace, "/Foo")
   self.mgd.set_workspace(workspace)
   bookstores = BookStoreQuery.findByName(self.mgd, self.bookstoreName)        
   self.assertEqual(len(bookstores), 1)
   bookstore = bookstores[0]
   self.assertEqual(bookstore.get_property("extra"), self.extraFoo)