예제 #1
0
    def test01CtorSerilization(self):
        """ c'tor and serialization """
        # # empty c'tor
        req = Request()
        self.assertEqual(isinstance(req, Request), True)
        self.assertEqual(req.JobID, 0)
        self.assertEqual(req.Status, "Waiting")

        req = Request(self.fromDict)
        self.assertEqual(isinstance(req, Request), True)
        self.assertEqual(req.RequestName, "test")
        self.assertEqual(req.JobID, 12345)
        self.assertEqual(req.Status, "Waiting")

        toJSON = req.toJSON()
        self.assertEqual(toJSON["OK"], True, "JSON serialization failed")

        fromJSON = toJSON["Value"]
        req = Request(fromJSON)

        toSQL = req.toSQL()
        self.assertEqual(toSQL["OK"], True)
        toSQL = toSQL["Value"]
        self.assertEqual(toSQL.startswith("INSERT"), True)

        req.RequestID = 1

        toSQL = req.toSQL()
        self.assertEqual(toSQL["OK"], True)
        toSQL = toSQL["Value"]
        self.assertEqual(toSQL.startswith("UPDATE"), True)
예제 #2
0
  def test02Props( self ):
    """ props """
    # # valid values
    req = Request()

    req.RequestID = 1
    self.assertEqual( req.RequestID, 1 )

    req.RequestName = "test"
    self.assertEqual( req.RequestName, "test" )

    req.JobID = 1
    self.assertEqual( req.JobID, 1 )

    req.CreationTime = "1970-01-01 00:00:00"
    self.assertEqual( req.CreationTime, datetime.datetime( 1970, 1, 1, 0, 0, 0 ) )
    req.CreationTime = datetime.datetime( 1970, 1, 1, 0, 0, 0 )
    self.assertEqual( req.CreationTime, datetime.datetime( 1970, 1, 1, 0, 0, 0 ) )

    req.SubmitTime = "1970-01-01 00:00:00"
    self.assertEqual( req.SubmitTime, datetime.datetime( 1970, 1, 1, 0, 0, 0 ) )
    req.SubmitTime = datetime.datetime( 1970, 1, 1, 0, 0, 0 )
    self.assertEqual( req.SubmitTime, datetime.datetime( 1970, 1, 1, 0, 0, 0 ) )

    req.LastUpdate = "1970-01-01 00:00:00"
    self.assertEqual( req.LastUpdate, datetime.datetime( 1970, 1, 1, 0, 0, 0 ) )
    req.LastUpdate = datetime.datetime( 1970, 1, 1, 0, 0, 0 )
    self.assertEqual( req.LastUpdate, datetime.datetime( 1970, 1, 1, 0, 0, 0 ) )

    req.Error = ""
예제 #3
0
def test_Props():
    """props"""
    # # valid values
    req = Request()

    req.RequestID = 1
    assert req.RequestID == 1

    req.RequestName = "test"
    assert req.RequestName == "test"

    req.JobID = 1
    assert req.JobID == 1

    req.CreationTime = "1970-01-01 00:00:00"
    assert req.CreationTime == datetime.datetime(1970, 1, 1, 0, 0, 0)
    req.CreationTime = datetime.datetime(1970, 1, 1, 0, 0, 0)
    assert req.CreationTime == datetime.datetime(1970, 1, 1, 0, 0, 0)

    req.SubmitTime = "1970-01-01 00:00:00"
    assert req.SubmitTime == datetime.datetime(1970, 1, 1, 0, 0, 0)
    req.SubmitTime = datetime.datetime(1970, 1, 1, 0, 0, 0)
    assert req.SubmitTime == datetime.datetime(1970, 1, 1, 0, 0, 0)

    req.LastUpdate = "1970-01-01 00:00:00"
    assert req.LastUpdate == datetime.datetime(1970, 1, 1, 0, 0, 0)
    req.LastUpdate = datetime.datetime(1970, 1, 1, 0, 0, 0)
    assert req.LastUpdate == datetime.datetime(1970, 1, 1, 0, 0, 0)

    req.Error = ""
예제 #4
0
  def test01CtorSerilization( self ):
    """ c'tor and serialization """
    # # empty c'tor
    req = Request()
    self.assertEqual( isinstance( req, Request ), True )
    self.assertEqual( req.JobID, 0 )
    self.assertEqual( req.Status, "Waiting" )

    req = Request( self.fromDict )
    self.assertEqual( isinstance( req, Request ), True )
    self.assertEqual( req.RequestName, "test" )
    self.assertEqual( req.JobID, 12345 )
    self.assertEqual( req.Status, "Waiting" )

    toJSON = req.toJSON()
    self.assertEqual( toJSON["OK"], True, "JSON serialization failed" )

    fromJSON = toJSON["Value"]
    req = Request( fromJSON )

    toSQL = req.toSQL()
    self.assertEqual( toSQL["OK"], True )
    toSQL = toSQL["Value"]
    self.assertEqual( toSQL.startswith( "INSERT" ), True )

    req.RequestID = 1

    toSQL = req.toSQL()
    self.assertEqual( toSQL["OK"], True )
    toSQL = toSQL["Value"]
    self.assertEqual( toSQL.startswith( "UPDATE" ), True )
예제 #5
0
  def test03sql( self ):
    """ sql insert or update """
    operation = Operation()
    operation.Type = "ReplicateAndRegister"

    request = Request()
    request.RequestName = "testRequest"
    request.RequestID = 1

    # # no parent request set
    try:
      operation.toSQL()
    except Exception, error:
      self.assertEqual( isinstance( error, AttributeError ), True, "wrong exc raised" )
      self.assertEqual( str( error ), "RequestID not set", "wrong exc reason" )
예제 #6
0
    def test03sql(self):
        """ sql insert or update """
        operation = Operation()
        operation.Type = "ReplicateAndRegister"

        request = Request()
        request.RequestName = "testRequest"
        request.RequestID = 1

        # # no parent request set
        try:
            operation.toSQL()
        except Exception, error:
            self.assertEqual(isinstance(error, AttributeError), True,
                             "wrong exc raised")
            self.assertEqual(str(error), "RequestID not set",
                             "wrong exc reason")
예제 #7
0
    def test07List(self):
        """ setitem, delitem, getitem and dirty """

        r = Request()

        ops = [Operation() for i in range(5)]

        for op in ops:
            r.addOperation(op)

        for i, op in enumerate(ops):
            self.assertEqual(op, r[i], "__getitem__ failed")

        op = Operation()
        r[0] = op
        self.assertEqual(op, r[0], "__setitem__ failed")

        del r[0]
        self.assertEqual(len(r), 4, "__delitem__ failed")

        r.RequestID = 1
        del r[0]
        self.assertEqual(r.cleanUpSQL(), None,
                         "cleanUpSQL failed after __delitem__ (no opId)")

        r[0].OperationID = 1
        del r[0]
        self.assertEqual(
            r.cleanUpSQL(),
            "DELETE FROM `Operation` WHERE `RequestID` = 1 AND `OperationID` IN (1);",
            "cleanUpSQL failed after __delitem__ (opId set)")

        r[0].OperationID = 2
        r[0] = Operation()
        self.assertEqual(
            r.cleanUpSQL(),
            "DELETE FROM `Operation` WHERE `RequestID` = 1 AND `OperationID` IN (1,2);",
            "cleanUpSQL failed after __setitem_ (opId set)")

        json = r.toJSON()
        self.assertEqual("__dirty" in json["Value"], True,
                         "__dirty missing in json")

        r2 = Request(json["Value"])
        self.assertEqual(r.cleanUpSQL(), r2.cleanUpSQL(),
                         "wrong cleanUpSQL after json")
예제 #8
0
  def test07List( self ):
    """ setitem, delitem, getitem and dirty """

    r = Request()

    ops = [ Operation() for i in range( 5 ) ]

    for op in ops:
      r.addOperation( op )

    for i, op in enumerate( ops ):
      self.assertEqual( op, r[i], "__getitem__ failed" )

    op = Operation()
    r[0] = op
    self.assertEqual( op, r[0], "__setitem__ failed" )

    del r[0]
    self.assertEqual( len( r ), 4, "__delitem__ failed" )

    r.RequestID = 1
    del r[0]
    self.assertEqual( r.cleanUpSQL(), None, "cleanUpSQL failed after __delitem__ (no opId)" )

    r[0].OperationID = 1
    del r[0]
    clean = r.cleanUpSQL()
    self.assertEqual( clean,
                      ['DELETE FROM `Operation` WHERE `RequestID`=1 AND `OperationID` IN (1);\n',
                       'DELETE FROM `File` WHERE `OperationID`=1;\n'],
                      "cleanUpSQL failed after __delitem__ (opId set)\n%s" % clean )

    r[0].OperationID = 2
    r[0] = Operation()
    clean = r.cleanUpSQL()
    self.assertEqual( clean,
                      ['DELETE FROM `Operation` WHERE `RequestID`=1 AND `OperationID` IN (1,2);\n',
                      'DELETE FROM `File` WHERE `OperationID`=1;\n', 'DELETE FROM `File` WHERE `OperationID`=2;\n'],
                      "cleanUpSQL failed after __setitem_ (opId set):\n%s" % clean )

    json = r.toJSON()
    self.assertEqual( "__dirty" in json["Value"], True, "__dirty missing in json" )

    r2 = Request( json["Value"] )
    self.assertEqual( r.cleanUpSQL(), r2.cleanUpSQL(), "wrong cleanUpSQL after json" )
예제 #9
0
    def test02Props(self):
        """ props """
        # # valid values
        req = Request()

        req.RequestID = 1
        self.assertEqual(req.RequestID, 1)

        req.RequestName = "test"
        self.assertEqual(req.RequestName, "test")

        req.JobID = 1
        self.assertEqual(req.JobID, 1)
        req.JobID = "1"
        self.assertEqual(req.JobID, 1)

        req.CreationTime = "1970-01-01 00:00:00"
        self.assertEqual(req.CreationTime,
                         datetime.datetime(1970, 1, 1, 0, 0, 0))
        req.CreationTime = datetime.datetime(1970, 1, 1, 0, 0, 0)
        self.assertEqual(req.CreationTime,
                         datetime.datetime(1970, 1, 1, 0, 0, 0))

        req.SubmitTime = "1970-01-01 00:00:00"
        self.assertEqual(req.SubmitTime,
                         datetime.datetime(1970, 1, 1, 0, 0, 0))
        req.SubmitTime = datetime.datetime(1970, 1, 1, 0, 0, 0)
        self.assertEqual(req.SubmitTime,
                         datetime.datetime(1970, 1, 1, 0, 0, 0))

        req.LastUpdate = "1970-01-01 00:00:00"
        self.assertEqual(req.LastUpdate,
                         datetime.datetime(1970, 1, 1, 0, 0, 0))
        req.LastUpdate = datetime.datetime(1970, 1, 1, 0, 0, 0)
        self.assertEqual(req.LastUpdate,
                         datetime.datetime(1970, 1, 1, 0, 0, 0))

        req.Error = ""