def test_remove_on_emtpy(logger, mongodb):
    """Test a remove sdf on an empty db causes no problems.
    """
    assert document.all() == []

    example_sdf = [
        {
            "type": "delete",
            "id": "1246",
            "version": 2
        }
    ]
    rc = document.load(example_sdf)

    assert rc['status'] == 'ok'
    assert rc['adds'] == 0
    assert rc['deletes'] == 1
    assert rc['error'] == ''
    assert rc['warning'] == ''

    found = document.all()
    assert len(found) == 0

    report = document.report()

    assert len(report['documents_removed']) == 0
    assert len(report['documents']) == 0
def test_document_add(logger, mongodb):
    """Test mongo document API.
    """
    assert document.all() == []

    doc = {
        "designer": "98",
        "price": 1195,
        "retailer": "",
        "brand_id": [
            7017
        ],
        "size": [],
        "category": "",
        "name": "Pro Quad Clamp Purple",
        "colour": [],
        "brand": "98",
        "created_at": 1376391294
    }

    example_sdf = [
        {
            "lang": "en",
            "fields": doc,
            "version": 1376497963,
            "type": "add",
            "id": 1246
        }
    ]

    rc = document.load(example_sdf)

    assert rc['status'] == 'ok'
    assert rc['adds'] == 1
    assert rc['deletes'] == 0
    assert rc['error'] == ''
    assert rc['warning'] == ''

    found = document.all()

    assert len(found) == 1
    assert found[0]['id'] == '1246'
    assert found[0]['_id'] == '1246'
    assert found[0]['lang'] == 'en'
    # type should have been stripped:
    assert 'type' not in found[0]
    assert found[0]['version'] == '1376497963'
    assert found[0]['fields']['name'] == "Pro Quad Clamp Purple"

    document.remove_all()
    assert len(document.all()) == 0
Пример #3
0
def test_search_with_no_content(logger, mongodb, elastic):
    """Test search an empty system doesn't raise exceptions.
    """
    assert document.all() == []

    results = document.search()
    assert results['hits']['found'] == 0
Пример #4
0
def test_document_add(logger, elastic, mongodb):
    """Test mongo document API.
    """
    assert document.all() == []

    doc = {
        "designer": "98",
        "price": 1195,
        "retailer": "",
        "brand_id": [7017],
        "size": [],
        "category": "",
        "name": "Pro Quad Clamp Purple",
        "colour": [],
        "brand": "98",
        "created_at": 1376391294
    }

    example_sdf = [{
        "lang": "en",
        "fields": doc,
        "version": 1376497963,
        "type": "add",
        "id": 1246
    }]

    rc = document.load(example_sdf)

    assert rc['status'] == 'ok'
    assert rc['adds'] == 1
    assert rc['deletes'] == 0
    assert rc['error'] == ''
    assert rc['warning'] == ''

    found = document.all()

    assert len(found) == 1
    assert found[0]['id'] == '1246'
    assert found[0]['_id'] == '1246'
    assert found[0]['lang'] == 'en'
    # type should have been stripped:
    assert 'type' not in found[0]
    assert found[0]['version'] == '1376497963'
    assert found[0]['fields']['name'] == "Pro Quad Clamp Purple"

    document.remove_all()
    assert len(document.all()) == 0
Пример #5
0
def test_remove_on_emtpy(logger, mongodb):
    """Test a remove sdf on an empty db causes no problems.
    """
    assert document.all() == []

    example_sdf = [{"type": "delete", "id": "1246", "version": 2}]
    rc = document.load(example_sdf)

    assert rc['status'] == 'ok'
    assert rc['adds'] == 0
    assert rc['deletes'] == 1
    assert rc['error'] == ''
    assert rc['warning'] == ''

    found = document.all()
    assert len(found) == 0

    report = document.report()

    assert len(report['documents_removed']) == 0
    assert len(report['documents']) == 0
Пример #6
0
def test_basic_search(logger, mongodb, elastic):
    """Test searching the documents stored in mongodb.
    """
    assert document.all() == []

    doc = {
        "designer": "GearPro",
        "price": 12.60,
        "retailer": "MyShoppe",
        "brand_id": [7017],
        "size": [],
        "category": "",
        "name": "Pro Quad Clamp Purple",
        "colour": [],
        "brand": "98",
        "created_at": 1376391294
    }

    doc2 = {
        "designer": "GearPro",
        "price": 12.60,
        "retailer": "MyShoppe",
        "brand_id": [7016],
        "size": [],
        "category": "",
        "name": "Bike Pump Purple",
        "colour": [],
        "brand": "98",
        "created_at": 1376391294
    }

    example_sdf = [{
        "lang": "en",
        "fields": doc,
        "version": 1376497963,
        "type": "add",
        "id": 1246
    }, {
        "lang": "en",
        "fields": doc2,
        "version": 1376497963,
        "type": "add",
        "id": 1247
    }]

    rc = document.load(example_sdf)
    assert rc['status'] == 'ok'
    assert rc['adds'] == 2

    # return all:
    results = document.search()
    assert results['hits']['found'] == 2
    c = [{'id': '1247'}, {'id': '1246'}]
    c.sort()
    results['hits']['hit'].sort()
    assert results['hits']['hit'] == c

    # return a specific one:
    query = dict(q="pro")
    results = document.search(query)
    assert results['hits']['found'] == 1
    assert results['hits']['hit'] == [{'id': '1246'}]

    query = dict(q="myshop")
    results = document.search(query)
    assert results['hits']['found'] == 2
    c.sort()
    results['hits']['hit'].sort()
    assert results['hits']['hit'] == c

    query = dict(q="not in any string")
    results = document.search(query)
    assert results['hits']['found'] == 0
Пример #7
0
def test_basic_search(logger, mongodb, elastic):
    """Test searching the documents stored in mongodb.
    """
    assert document.all() == []

    doc = {
        "designer": "GearPro",
        "price": 12.60,
        "retailer": "MyShoppe",
        "brand_id": [
            7017
        ],
        "size": [],
        "category": "",
        "name": "Pro Quad Clamp Purple",
        "colour": [],
        "brand": "98",
        "created_at": 1376391294
    }

    doc2 = {
        "designer": "GearPro",
        "price": 12.60,
        "retailer": "MyShoppe",
        "brand_id": [
            7016
        ],
        "size": [],
        "category": "",
        "name": "Bike Pump Purple",
        "colour": [],
        "brand": "98",
        "created_at": 1376391294
    }

    example_sdf = [
        {
            "lang": "en",
            "fields": doc,
            "version": 1376497963,
            "type": "add",
            "id": 1246
        },
        {
            "lang": "en",
            "fields": doc2,
            "version": 1376497963,
            "type": "add",
            "id": 1247
        }
    ]

    rc = document.load(example_sdf)
    assert rc['status'] == 'ok'
    assert rc['adds'] == 2

    # return all:
    results = document.search()
    assert results['hits']['found'] == 2
    expected = [
        {'id': '1246', 'fields': doc},
        {'id': '1247', 'fields': doc2},
    ]
    assert results['hits']['hit'] == expected

    # return a specific one:
    query = dict(q="pro")
    results = document.search(query)
    assert results['hits']['found'] == 1
    assert results['hits']['hit'] == [{'id': '1246', 'fields': doc}]

    # this should return two results for the text MyShoppe:
    query = dict(q="myshop")
    results = document.search(query)
    assert results['hits']['found'] == 2
    assert results['hits']['hit'] == expected

    query = dict(q="not in any string")
    results = document.search(query)
    assert results['hits']['found'] == 0

    # return in sdk format
    query = dict(q="pro", format="sdk")
    results = document.search(query)
    for key, value in doc.items():
        if not isinstance(value, list):
            doc[key] = [value]
    assert results['hits']['found'] == 1
    assert results['hits']['hit'] == [{'id': '1246', 'fields': doc}]
Пример #8
0
def test_add_remove(logger, mongodb):
    """Test add and removing of documents via the batch upload sdf.
    """
    assert document.all() == []

    doc = {
        "designer": "98",
        "price": 1195,
        "retailer": "",
        "brand_id": [7017],
        "size": [],
        "category": "",
        "name": "Pro Quad Clamp Purple",
        "colour": [],
        "brand": "98",
        "created_at": 1376391294
    }

    example_add_sdf = [{
        "lang": "en",
        "fields": doc,
        "version": 1376497963,
        "type": "add",
        "id": 1246
    }]

    rc = document.load(example_add_sdf)

    assert rc['status'] == 'ok'
    assert rc['adds'] == 1
    assert rc['deletes'] == 0
    assert rc['error'] == ''
    assert rc['warning'] == ''

    report = document.report()

    assert len(report['documents_removed']) == 0
    assert len(report['documents']) == 1
    doc = report['documents'][0]
    assert doc["fields"]["name"] == "Pro Quad Clamp Purple"

    # Now remove the document from the store:
    #
    example_remove_sdf = [{"type": "delete", "id": "1246", "version": 2}]
    rc = document.load(example_remove_sdf)

    assert rc['status'] == 'ok'
    assert rc['adds'] == 0
    assert rc['deletes'] == 1
    assert rc['error'] == ''
    assert rc['warning'] == ''

    found = document.all()
    assert len(found) == 0

    report = document.report()

    assert len(report['documents_removed']) == 1
    assert len(report['documents']) == 0
    doc = report['documents_removed'][0]
    assert doc["fields"]["name"] == "Pro Quad Clamp Purple"

    # Clear out the remove and delete record of all documents:
    #
    document.remove_all()
    report = document.report()
    assert len(document.all()) == 0
    assert len(report['documents_removed']) == 0
    assert len(report['documents']) == 0
Пример #9
0
def test_remove_then_search(logger, mongodb):
    """Test search after a removal of a document.
    """
    assert document.all() == []

    doc = {
        "designer": "98",
        "price": 1195,
        "retailer": "",
        "brand_id": [7017],
        "size": [],
        "category": "",
        "name": "Pro Quad Clamp Purple",
        "colour": [],
        "brand": "98",
        "created_at": 1376391294
    }

    example_add_sdf = [{
        "lang": "en",
        "fields": doc,
        "version": 1376497963,
        "type": "add",
        "id": 1246
    }]

    rc = document.load(example_add_sdf)

    assert rc['status'] == 'ok'
    assert rc['adds'] == 1
    assert rc['deletes'] == 0
    assert rc['error'] == ''
    assert rc['warning'] == ''

    report = document.report()

    assert len(report['documents_removed']) == 0
    assert len(report['documents']) == 1
    doc = report['documents'][0]
    assert doc["fields"]["name"] == "Pro Quad Clamp Purple"

    # Now remove the document from the store:
    #
    example_remove_sdf = [{"type": "delete", "id": "1246", "version": 2}]
    rc = document.load(example_remove_sdf)

    assert rc['status'] == 'ok'
    assert rc['adds'] == 0
    assert rc['deletes'] == 1
    assert rc['error'] == ''
    assert rc['warning'] == ''

    found = document.all()
    assert len(found) == 0

    report = document.report()

    assert len(report['documents_removed']) == 1
    assert len(report['documents']) == 0
    doc = report['documents_removed'][0]
    assert doc["fields"]["name"] == "Pro Quad Clamp Purple"

    # Now search for the document:
    #
    found = document.search({'q': 'Pro Quad Clamp Purple'})
    hits = found['hits']

    assert hits['found'] == 0
def test_add_remove(logger, mongodb):
    """Test add and removing of documents via the batch upload sdf.
    """
    assert document.all() == []

    doc = {
        "designer": "98",
        "price": 1195,
        "retailer": "",
        "brand_id": [
            7017
        ],
        "size": [],
        "category": "",
        "name": "Pro Quad Clamp Purple",
        "colour": [],
        "brand": "98",
        "created_at": 1376391294
    }

    example_add_sdf = [
        {
            "lang": "en",
            "fields": doc,
            "version": 1376497963,
            "type": "add",
            "id": 1246
        }
    ]

    rc = document.load(example_add_sdf)

    assert rc['status'] == 'ok'
    assert rc['adds'] == 1
    assert rc['deletes'] == 0
    assert rc['error'] == ''
    assert rc['warning'] == ''

    report = document.report()

    print report

    assert len(report['documents_removed']) == 0
    assert len(report['documents']) == 1
    doc = report['documents'][0]
    assert doc["fields"]["name"] == "Pro Quad Clamp Purple"

    # Now remove the document from the store:
    #
    example_remove_sdf = [
        {
            "type": "delete",
            "id": "1246",
            "version": 2
        }
    ]
    rc = document.load(example_remove_sdf)

    assert rc['status'] == 'ok'
    assert rc['adds'] == 0
    assert rc['deletes'] == 1
    assert rc['error'] == ''
    assert rc['warning'] == ''

    found = document.all()
    assert len(found) == 0

    report = document.report()

    assert len(report['documents_removed']) == 1
    assert len(report['documents']) == 0
    doc = report['documents_removed'][0]
    assert doc["fields"]["name"] == "Pro Quad Clamp Purple"

    # Clear out the remove and delete record of all documents:
    #
    document.remove_all()
    report = document.report()
    assert len(document.all()) == 0
    assert len(report['documents_removed']) == 0
    assert len(report['documents']) == 0