Пример #1
0
class Arango:
    """
    Client to work with ArangoDB
    """

    def __init__(self, database="domain", collection="listings"):
        """
        Class constructor
        @param database: arango database name
        @param collection: arango collection name
        """
        self.__client = ArangoClient(hosts=os.getenv("ARANGO_HOST"))
        sys_db = self.__client.db("_system", username="", password="")
        if "domain" not in sys_db.databases():
            sys_db.create_database(database)
            print("Creating database")
        self.db = self.__client.db("domain", username="", password="")
        if "listings" not in [c["name"] for c in self.db.collections()]:
            self.db.create_collection(collection)
            print("Creating listings collection")
        self.collection = self.db.collection(collection)

    def __del__(self):
        """
        Class destructor
        @return: None
        """
        self.__client.close()
        print("Closing DB Collection")
Пример #2
0
 def test_credentials_database(self):
     client = ArangoClient(hosts="http://localhost:8529")
     sys_db = client.db("_system", username="******", password="******")
     # first try to delete the test database
     sys_db.delete_database('test', ignore_missing=True)
     print("create DB")
     self.assertTrue(create_database(sys_db, dbname='test'))
     db = client.db("test", username="******", password="******")
     # test collection creation
     print("create collections")
     self.assertTrue(create_collections(db))
     # test create user
     print("add credential")
     credentialid = "abcd"
     credentialdict = {"a": ['b'], "c": 1}
     status, result = add_credential(db, credentialid, credentialdict)
     self.assertTrue(status)
     self.assertEqual(credentialid, result["_key"])
     print("get credential")
     status, result = get_credential(db, credentialid)
     self.assertTrue(status)
     self.assertEqual(credentialid, result["_key"])
     self.assertEqual(credentialdict["a"], result["a"])
     print("delete credential")
     status = delete_credential(db, credentialid)
     self.assertTrue(status)
     print("check missing credential")
     status, result = get_credential(db, credentialid)
     self.assertFalse(status)
     # close sessions
     client.close()
Пример #3
0
 def test_manage_user_database(self):
     client = ArangoClient(hosts="http://*****:*****@condidi.tib.eu",
         "password": "******"
     }
     print(create_user(db, userdata))
     print("check user")
     status, result = find_user(db, {"email": userdata["email"]})
     self.assertTrue(status)
     for key in userdata:
         if key != "password":
             self.assertEqual(userdata[key], result[key])
     print("check existing user detection")
     self.assertFalse(create_user(db, userdata)[0])
     print("check correct password")
     self.assertTrue(
         check_pass(db,
                    password="******",
                    user_email="*****@*****.**")[0])
     print("check wrong password")
     self.assertFalse(
         check_pass(db, password="******",
                    user_email="*****@*****.**")[0])
     print("check wrong password call")
     self.assertFalse(check_pass(db, password="******")[0])
     print("delete test database")
     self.assertTrue(sys_db.delete_database('test'))
     # close sessions
     client.close()
Пример #4
0
 def test_manage_event_database(self):
     client = ArangoClient(hosts="http://localhost:8529")
     sys_db = client.db("_system", username="******", password="******")
     # first try to delete the test database
     sys_db.delete_database('test', ignore_missing=True)
     print("create DB")
     self.assertTrue(create_database(sys_db, dbname='test'))
     db = client.db("test", username="******", password="******")
     # test collection creation
     print("create collections")
     self.assertTrue(create_collections(db))
     # test create event
     print("event dict")
     myevent = Event()
     eventdict = {
         "name": "test event",
         "url": "http://nada",
         "error": "False",
         "organiser_userid": 0
     }
     badkeys = myevent.load(eventdict)
     self.assertEqual(badkeys, ["error"])
     self.assertEqual(len(myevent.keys()), len(myevent.allowed_keys))
     print("add event")
     result = create_event(db, myevent)
     print(result)
     myevent["name"] = "test event 1"
     result = create_event(db, myevent)
     print(result)
     eventid = result[1]["_key"]
     print("retrieve 1 event")
     result = get_event(db, eventid)
     print(result)
     print("find events")
     result = find_events(db, {"organiser_userid": 0})
     print(result)
     print("delete test database")
     self.assertTrue(sys_db.delete_database('test'))
     # close sessions
     client.close()
Пример #5
0
    def test_manage_participants_database(self):
        client = ArangoClient(hosts="http://localhost:8529")
        sys_db = client.db("_system", username="******", password="******")
        # first try to delete the test database
        sys_db.delete_database('test', ignore_missing=True)
        print("create DB")
        self.assertTrue(create_database(sys_db, dbname='test'))
        db = client.db("test", username="******", password="******")
        # test collection creation
        print("create collections")
        self.assertTrue(create_collections(db))
        # test create event
        #print("event dict")
        myevent = Event()
        eventdict = {
            "name": "test event1",
            "url": "http://nada",
            "error": "False",
            "organiser_userid": 0
        }
        #badkeys = myevent.load(eventdict)
        #self.assertEqual(badkeys, ["error"])
        #self.assertEqual(len(myevent.keys()), len(myevent.allowed_keys))
        print("add event")
        result = create_event(db, myevent)
        eventid = result[1]["_key"]
        # list participants, should be empty
        print("get participants")
        result = list_participants(db, eventid)
        print(result)
        print("add participant")
        par = Participant()
        par.load({"name": "Testparticipant"})
        print("create a participant")
        result = create_participant(db, par)
        parid = result["_key"]
        print(result)
        result = get_participant(db, parid)
        self.assertIsNotNone(result)
        self.assertEqual(result["_key"], parid)
        print("list participants")
        result = list_participants(db, eventid)
        print(result)
        print("add to event")
        result = add_participant_to_event(db, parid, eventid=eventid)
        print(result)
        listid = result[1]["_key"]
        result = add_participant_to_event(db, parid, listid=listid)
        print(result)
        print("remove participant")
        result = remove_participant_from_event(db, parid, eventid=eventid)
        print(result)
        result = remove_participant_from_event(db, parid, listid=listid)
        print(result)
        result = list_participants(db, eventid)
        print(result)

        print("delete test database")
        self.assertTrue(sys_db.delete_database('test'))
        # close sessions
        client.close()