Ejemplo n.º 1
0
def setup():
    global db
    db = xodb.temp()
    db.map(Person, PersonSchema)
    db.map(Department, DepartmentSchema)

    joe = Person(
        name=u'joe',
        last=u'bob',
        job='cake inspector',
        salary=4500,
        rank=2,
        hired=date(1999, 9, 9),
        clocked=datetime(2010, 10, 10, 10, 10),
        description="I am the eggmans walking",
        cualificaciones=u"páseador de perros",
        kw='one two walking shoes',
        friends=['rick', 'roll'],
        properties=dict(status='annoying', shoe_size=3),
        location=(7.0625, -95.677068),
    )
    joe.nothing = None

    jane = Person(
        name=u'jane',
        last=u'bob',
        job='steak inspector',
        salary=5600,
        rank=100,
        hired=date(2000, 9, 9),
        clocked=datetime(2011, 11, 11, 11, 11),
        description="I am the womans modernize",
        cualificaciones="Devorador des pasteles fritos",
        kw='three four busting rhymes',
        friends=['alice', 'aligator'],
        properties=dict(status='pleasant', shoe_size=99),
        location=(51.500152, -0.126236),
    )

    department = Department('housing', employees=[joe.name, jane.name])
    department2 = Department('joe', employees=[joe.name])

    joe.department = department2.name
    jane.department = department.name

    db.add(joe, jane, department, department2)
Ejemplo n.º 2
0
def setup():
    global db
    db = xodb.temp()
    db.map(Person, PersonSchema)
    db.map(Department, DepartmentSchema)

    joe = Person(name=u'joe', last=u'bob', job='cake inspector',
                 salary=4500, rank=2, hired=date(1999, 9, 9),
                 clocked=datetime(2010, 10, 10, 10, 10),
                 description="I am the eggmans walking",
                 cualificaciones=u"páseador de perros",
                 kw='one two walking shoes',
                 friends=['rick', 'roll'],
                 properties=dict(status='annoying', shoe_size=3),
                 location=(7.0625, -95.677068),
                 )
    joe.nothing = None

    jane = Person(name=u'jane', last=u'bob', job='steak inspector',
                  salary=5600, rank=100, hired=date(2000, 9, 9),
                  clocked=datetime(2011, 11, 11, 11, 11),
                  description="I am the womans modernize",
                  cualificaciones="Devorador des pasteles fritos",
                  kw='three four busting rhymes',
                  friends=['alice', 'aligator'],
                  properties=dict(status='pleasant', shoe_size=99),
                  location=(51.500152, -0.126236),
                  )

    department = Department('housing',
                                 employees=[joe.name,
                                            jane.name])
    department2 = Department('joe',
                                  employees=[joe.name])

    joe.department = department2.name
    jane.department = department.name

    db.add(joe, jane, department, department2)
Ejemplo n.º 3
0
def test_value_range_processor():
    vp = MultipleValueRangeProcessor(dict(foo=1, bar=2), str.upper)
    assert vp('foo:abc', 'def') == (1, 'ABC', 'DEF')
    assert vp('bar:news', 'def') == (2, 'NEWS', 'DEF')
    assert vp('bar:', 'def') == (2, '', 'DEF')
    assert vp('bar', 'def') == (xapian.BAD_VALUENO, 'bar', 'def')
    assert vp('baz:foo', 'def') == (xapian.BAD_VALUENO, 'baz:foo', 'def')

    qp = xapian.QueryParser()
    db = xodb.temp()
    qp.set_database(db.backend)
    qp.add_valuerangeprocessor(vp)

    query = qp.parse_query('foo:abc..def')
    assert str(query) == 'Xapian::Query(VALUE_RANGE 1 ABC DEF)'

    query = qp.parse_query('bar:abc..def')
    assert str(query) == 'Xapian::Query(VALUE_RANGE 2 ABC DEF)'

    query = qp.parse_query('bar:3..4')
    assert str(query) == 'Xapian::Query(VALUE_RANGE 2 3 4)'

    assert_raises(xapian.QueryParserError, qp.parse_query, 'baz:abc..def')
Ejemplo n.º 4
0
def test_value_range_processor():
    vp = MultipleValueRangeProcessor(dict(foo=1, bar=2), str.upper)
    assert vp('foo:abc', 'def') == (1, 'ABC', 'DEF')
    assert vp('bar:news', 'def') == (2, 'NEWS', 'DEF')
    assert vp('bar:', 'def') == (2, '', 'DEF')
    assert vp('bar', 'def') == (xapian.BAD_VALUENO, 'bar', 'def')
    assert vp('baz:foo', 'def') == (xapian.BAD_VALUENO, 'baz:foo', 'def')

    qp = xapian.QueryParser()
    db = xodb.temp()
    qp.set_database(db.backend)
    qp.add_valuerangeprocessor(vp)

    query = qp.parse_query('foo:abc..def')
    assert str(query) == 'Xapian::Query(VALUE_RANGE 1 ABC DEF)'

    query = qp.parse_query('bar:abc..def')
    assert str(query) == 'Xapian::Query(VALUE_RANGE 2 ABC DEF)'

    query = qp.parse_query('bar:3..4')
    assert str(query) == 'Xapian::Query(VALUE_RANGE 2 3 4)'

    assert_raises(xapian.QueryParserError, qp.parse_query, 'baz:abc..def')
import xodb
from xodb import Schema, String, Array

class Department(object):

  def __init__(self, name, employees):
      self.name = name
      self.employees = employees



class DepartmentSchema(Schema):
    language = String.using(default="en")
    name = String.using(facet=True)
    employees = Array.of(String.using(facet=True))


db = xodb.temp()
db.map(Department, DepartmentSchema)

housing = Department("housing", ['bob', 'jane'])
monkeys = Department("monkeys", ['bob', 'rick'])

db.add(housing, monkeys)
db.backend.flush()

assert db.query("name:monkeys").next().name == "monkeys"
assert db.query("employees:jane").next().name == "housing"


Ejemplo n.º 6
0
 def _writer():
     db = xodb.temp()
     db.map(F, FS)
     return db
Ejemplo n.º 7
0
 def _writer():
     db = xodb.temp()
     db.map(F, FS)
     return db