def test_can_get_or_create(self):
        # Create
        cat1 = KeysCategory.get_or_create(self.db, 'SEO')
        expect(cat1.name).to_equal('SEO')

        # Get
        cat2 = KeysCategory.get_or_create(self.db, 'SEO')
        expect(cat1.id).to_equal(cat2.id)
Beispiel #2
0
    def test_can_get_or_create(self):
        # Create
        cat1 = KeysCategory.get_or_create(self.db, 'SEO')
        expect(cat1.name).to_equal('SEO')

        # Get
        cat2 = KeysCategory.get_or_create(self.db, 'SEO')
        expect(cat1.id).to_equal(cat2.id)
Beispiel #3
0
    def get_or_create(cls, db, key_name, category_name=None):
        key = cls.get_by_name(db, key_name)

        if key and key.category and key.category.name == category_name:
            return key

        if category_name is None:
            query_params = {'name': key_name}

            db.execute(
                'INSERT INTO `keys` (name) ' \
                'VALUES (:name) ON DUPLICATE KEY ' \
                'UPDATE name = :name',
                query_params
            )
        else:
            from holmes.models import KeysCategory
            category = KeysCategory.get_or_create(db, category_name)

            query_params = {'name': key_name, 'category_id': category.id}

            db.execute(
                'INSERT INTO `keys` (name, category_id) ' \
                'VALUES (:name, :category_id) ON DUPLICATE KEY ' \
                'UPDATE name = :name, category_id = :category_id',
                query_params
            )

        db.flush()

        return cls.get_by_name(db, key_name)
Beispiel #4
0
    def get_or_create(cls, db, key_name, category_name=None):
        key = cls.get_by_name(db, key_name)

        if key and key.category and key.category.name == category_name:
            return key

        if category_name is None:
            query_params = {'name': key_name}

            db.execute(
                'INSERT INTO `keys` (name) ' \
                'VALUES (:name) ON DUPLICATE KEY ' \
                'UPDATE name = :name',
                query_params
            )
        else:
            from holmes.models import KeysCategory
            category = KeysCategory.get_or_create(db, category_name)

            query_params = {'name': key_name, 'category_id': category.id}

            db.execute(
                'INSERT INTO `keys` (name, category_id) ' \
                'VALUES (:name, :category_id) ON DUPLICATE KEY ' \
                'UPDATE name = :name, category_id = :category_id',
                query_params
            )

        db.flush()

        return cls.get_by_name(db, key_name)
Beispiel #5
0
    def get_or_create(cls, db, key_name, category_name=None):
        key = db.query(Key).filter(Key.name == key_name).scalar()

        if not key:
            if category_name is None:
                key = Key(name=key_name)
            else:
                from holmes.models import KeysCategory
                category = KeysCategory.get_or_create(db, category_name)
                key = Key(name=key_name, category=category)

        return key
Beispiel #6
0
 def _insert_key_category(self, key, name):
     category = KeysCategory.get_or_create(self.application.db, name)
     self.application.db.add(category)
     self.application.db.flush()
     self.application.db.commit()
     return category