Esempio n. 1
0
    def test03RequestRW(self):
        """ db r/w requests """
        db = RequestDB()
        db._checkTables(True)

        # # empty DB at that stage
        ret = db.getDBSummary()
        self.assertEqual(ret, {"OK": True, "Value": {"Operation": {}, "Request": {}, "File": {}}})

        # # insert
        ret = db.putRequest(self.request)
        self.assertEqual(ret, {"OK": True, "Value": ""})

        # # get digest -> JSON
        ret = db.getDigest(self.request.RequestName)
        self.assertEqual(ret["OK"], True)
        self.assertEqual(bool(ret["Value"]), True)

        # # db summary
        ret = db.getDBSummary()
        self.assertEqual(
            ret,
            {
                "OK": True,
                "Value": {
                    "Operation": {"RemoveFile": {"Queued": 1L}, "ReplicateAndRegister": {"Waiting": 1L}},
                    "Request": {"Waiting": 1L},
                    "File": {"Waiting": 2L},
                },
            },
        )

        # # get request for jobs
        ret = db.getRequestNamesForJobs([1])
        self.assertEqual(ret["OK"], True)
        self.assertEqual(ret["Value"], {1: "test1"})

        # # read requests
        ret = db.readRequestsForJobs([1])
        self.assertEqual(ret["OK"], True)
        self.assertEqual(ret["Value"][1]["OK"], True)

        # # select
        ret = db.getRequest()
        self.assertEqual(ret["OK"], True)
        request = ret["Value"]
        self.assertEqual(isinstance(request, Request), True)

        # # summary
        ret = db.getDBSummary()
        self.assertEqual(
            ret,
            {
                "OK": True,
                "Value": {
                    "Operation": {"RemoveFile": {"Queued": 1L}, "ReplicateAndRegister": {"Waiting": 1L}},
                    "Request": {"Assigned": 1L},
                    "File": {"Waiting": 2L},
                },
            },
        )
        # # update
        ret = db.putRequest(request)
        self.assertEqual(ret, {"OK": True, "Value": ""})

        # # get summary again
        ret = db.getDBSummary()
        self.assertEqual(
            ret,
            {
                "OK": True,
                "Value": {
                    "Operation": {"RemoveFile": {"Queued": 1L}, "ReplicateAndRegister": {"Waiting": 1L}},
                    "Request": {"Waiting": 1L},
                    "File": {"Waiting": 2L},
                },
            },
        )

        # # delete
        ret = db.deleteRequest(self.request.RequestName)
        self.assertEqual(ret, {"OK": True, "Value": ""})

        # # should be empty now
        ret = db.getDBSummary()
        self.assertEqual(ret, {"OK": True, "Value": {"Operation": {}, "Request": {}, "File": {}}})
Esempio n. 2
0
    def test03RequestRW(self):
        """ db r/w requests """
        db = RequestDB()
        db._checkTables(True)

        # # empty DB at that stage
        ret = db.getDBSummary()
        self.assertEqual(ret, {
            'OK': True,
            'Value': {
                'Operation': {},
                'Request': {},
                'File': {}
            }
        })

        # # insert
        ret = db.putRequest(self.request)
        self.assertEqual(ret, {'OK': True, 'Value': ''})

        # # get digest -> JSON
        ret = db.getDigest(self.request.RequestName)
        self.assertEqual(ret["OK"], True)
        self.assertEqual(bool(ret["Value"]), True)

        # # db summary
        ret = db.getDBSummary()
        self.assertEqual(
            ret, {
                'OK': True,
                'Value': {
                    'Operation': {
                        'RemoveFile': {
                            'Queued': 1L
                        },
                        'ReplicateAndRegister': {
                            'Waiting': 1L
                        }
                    },
                    'Request': {
                        'Waiting': 1L
                    },
                    'File': {
                        'Waiting': 2L
                    }
                }
            })

        # # get request for jobs
        ret = db.getRequestNamesForJobs([1])
        self.assertEqual(ret["OK"], True)
        self.assertEqual(ret["Value"], {1: 'test1'})

        # # read requests
        ret = db.readRequestsForJobs([1])
        self.assertEqual(ret["OK"], True)
        self.assertEqual(ret["Value"][1]["OK"], True)

        # # select
        ret = db.getRequest()
        self.assertEqual(ret["OK"], True)
        request = ret["Value"]
        self.assertEqual(isinstance(request, Request), True)

        # # summary
        ret = db.getDBSummary()
        self.assertEqual(
            ret, {
                'OK': True,
                'Value': {
                    'Operation': {
                        'RemoveFile': {
                            'Queued': 1L
                        },
                        'ReplicateAndRegister': {
                            'Waiting': 1L
                        }
                    },
                    'Request': {
                        'Assigned': 1L
                    },
                    'File': {
                        'Waiting': 2L
                    }
                }
            })
        # # update
        ret = db.putRequest(request)
        self.assertEqual(ret, {'OK': True, 'Value': ''})

        # # get summary again
        ret = db.getDBSummary()
        self.assertEqual(
            ret, {
                'OK': True,
                'Value': {
                    'Operation': {
                        'RemoveFile': {
                            'Queued': 1L
                        },
                        'ReplicateAndRegister': {
                            'Waiting': 1L
                        }
                    },
                    'Request': {
                        'Waiting': 1L
                    },
                    'File': {
                        'Waiting': 2L
                    }
                }
            })

        # # delete
        ret = db.deleteRequest(self.request.RequestName)
        self.assertEqual(ret, {'OK': True, 'Value': ''})

        # # should be empty now
        ret = db.getDBSummary()
        self.assertEqual(ret, {
            'OK': True,
            'Value': {
                'Operation': {},
                'Request': {},
                'File': {}
            }
        })