Example #1
0
 def testObjectScope(self):
     o1 = object()
     tx = Transaction('transactionScopeName')
     tx.objectScope(o1)['key'] = 'value'
     self.assertEquals({'key': 'value'}, tx.objectScope(o1))
     o2 = object()
     self.assertEquals({}, tx.objectScope(o2))
Example #2
0
 def setUp(self):
     SeecrTestCase.setUp(self)
     ctx = CallTrace('CTX')
     tx = Transaction('TX')
     tx.locals = {'id': 'iden&tifier'}
     tx.name = "tsName"
     self.fxf = Fields2SolrDoc("tsName", "fields-partname")
     self.fxf.ctx = ctx
     self.fxf.ctx.tx = tx
     self.observer = CallTrace(methods={'add': add})
     self.fxf.addObserver(self.observer)
Example #3
0
 def setUp(self):
     SeecrTestCase.setUp(self)
     ctx = CallTrace('CTX')
     tx = Transaction('TX')
     tx.locals = {'id': 'iden&tifier'}
     tx.name = "tsName"
     self.fxf = Fields2SolrDoc("tsName", "fields-partname")
     self.fxf.ctx = ctx
     self.fxf.ctx.tx = tx
     self.observer = CallTrace(methods={'add': add})
     self.fxf.addObserver(self.observer)
Example #4
0
 def testJoinOnlyOnce(self):
     commitCalled = []
     class MockResourceManager(object):
         def commit(self, id):
             commitCalled.append(id)
     tx = Transaction('name')
     resource = MockResourceManager()
     tx.join(resource)
     tx.join(resource)
     list(tx.commit())
     self.assertEquals(1, len(commitCalled))
     self.assertEquals(tx.getId(), commitCalled[0])
Example #5
0
 def testSingularValueFields(self):
     __callstack_var_tx__ = Transaction('name')
     __callstack_var_tx__.locals['id'] = 'identifier'
     observer = CallTrace('observer', emptyGeneratorMethods=['add'])
     fxf = Fields2SolrDoc('name', 'partname', singularValueFields=['once'])
     fxf.addObserver(observer)
     fxf.begin(name='name')
     fxf.addField('once', 'one')
     fxf.addField('once', 'two')
     fxf.addField('twice', 'one')
     fxf.addField('twice', 'two')
     list(compose(fxf.commit(__callstack_var_tx__.getId())))
     method = observer.calledMethods[0]
     self.assertEquals({'__id__': ['identifier'], 'once':['one'], 'twice': ['one', 'two']}, todict(method.kwargs['data']))
Example #6
0
 def testSingularValueFields(self):
     __callstack_var_tx__ = Transaction('name')
     __callstack_var_tx__.locals['id'] = 'identifier'
     observer = CallTrace('observer', emptyGeneratorMethods=['add'])
     fxf = Fields2SolrDoc('name', 'partname', singularValueFields=['once'])
     fxf.addObserver(observer)
     fxf.begin(name='name')
     fxf.addField('once', 'one')
     fxf.addField('once', 'two')
     fxf.addField('twice', 'one')
     fxf.addField('twice', 'two')
     list(compose(fxf.commit(__callstack_var_tx__.getId())))
     method = observer.calledMethods[0]
     self.assertEquals(
         {
             '__id__': ['identifier'],
             'once': ['one'],
             'twice': ['one', 'two']
         }, todict(method.kwargs['data']))
    def testEmptyNamespace(self):
        ctx = CallTrace('CTX')
        tx = Transaction('TX')
        tx.locals = {'id': 'identifier'}
        tx.name = "tsName"
        fxf = Fields2XmlFields("tsName", "fields-partname")
        fxf.ctx = ctx 
        fxf.ctx.tx = tx
        observer = CallTrace(methods={'add': add})
        fxf.addObserver(observer)
        
        fxf.begin(name='tsName')
        fxf.addField("key.sub", "value")
        list(compose(fxf.commit(tx.getId())))

        self.assertEquals(['add'], [m.name for m in observer.calledMethods])
        self.assertEqualsWS("""<fields>
                <field name="key.sub">value</field>
            </fields>""", observer.calledMethods[0].kwargs['data']) 
    def testEmptyNamespace(self):
        ctx = CallTrace('CTX')
        tx = Transaction('TX')
        tx.locals = {'id': 'identifier'}
        tx.name = "tsName"
        fxf = Fields2XmlFields("tsName", "fields-partname")
        fxf.ctx = ctx 
        fxf.ctx.tx = tx
        observer = CallTrace(methods={'add': add})
        fxf.addObserver(observer)
        
        fxf.begin(name='tsName')
        fxf.addField("key.sub", "value")
        list(compose(fxf.commit(tx.getId())))

        self.assertEqual(['add'], [m.name for m in observer.calledMethods])
        self.assertEqualsWS("""<fields>
                <field name="key.sub">value</field>
            </fields>""", observer.calledMethods[0].kwargs['data']) 
    def testAddDocument(self):
        fields2LuceneDoc = Fields2LuceneDoc('tsname', fieldRegistry=FieldRegistry())
        observer = CallTrace()
        fields2LuceneDoc.addObserver(observer)
        fields2LuceneDoc.ctx.tx = Transaction('tsname')
        fields2LuceneDoc.ctx.tx.locals['id'] = 'identifier'
        fields2LuceneDoc.addField('field', 'value')
        consume(fields2LuceneDoc.commit('unused'))

        self.assertEquals(['addDocument'], observer.calledMethodNames())
        self.assertEquals('identifier', observer.calledMethods[0].kwargs['identifier'])
Example #10
0
 def testObjectScope(self):
     o1 = object()
     tx = Transaction('transactionScopeName')
     tx.objectScope(o1)['key'] = 'value'
     self.assertEqual({'key': 'value'}, tx.objectScope(o1))
     o2 = object()
     self.assertEqual({}, tx.objectScope(o2))
    def testCreateFacet(self):
        fields = {
            'field1': ['value1'],
            'sorted.field3': ['value3'],
            'untokenized.field4': ['value4'],
            'untokenized.field5': ['value5', 'value6'],
            'untokenized.field6': ['value5/value6'],
            'untokenized.field7': ['valuex'],
            'untokenized.field8': [['grandparent', 'parent', 'child'],
                                   ['parent2', 'child']]
        }
        fields2LuceneDoc = Fields2LuceneDoc(
            'tsname',
            fieldRegistry=FieldRegistry(drilldownFields=[
                DrilldownField('untokenized.field4'),
                DrilldownField('untokenized.field5'),
                DrilldownField('untokenized.field6'),
                DrilldownField('untokenized.field8', hierarchical=True),
            ]))
        observer = CallTrace()
        fields2LuceneDoc.addObserver(observer)
        fields2LuceneDoc.ctx.tx = Transaction('tsname')
        fields2LuceneDoc.ctx.tx.locals['id'] = 'identifier'
        for field, values in fields.items():
            for value in values:
                fields2LuceneDoc.addField(field, value)

        consume(fields2LuceneDoc.commit('unused'))

        document = observer.calledMethods[0].kwargs['document']
        searchFields = [
            f for f in document.getFields() if not FacetField.instance_(f)
        ]
        self.assertEquals(['field1', 'sorted.field3', 'untokenized.field7'],
                          [f.name() for f in searchFields])

        facetsFields = [
            FacetField.cast_(f) for f in document.getFields()
            if FacetField.instance_(f)
        ]
        self.assertEquals(6, len(facetsFields))
        self.assertEquals([
            ('untokenized.field8', ['grandparent', 'parent', 'child']),
            ('untokenized.field8', ['parent2', 'child']),
            ('untokenized.field6', ['value5/value6']),
            ('untokenized.field4', ['value4']),
            ('untokenized.field5', ['value5']),
            ('untokenized.field5', ['value6']),
        ], [(f.dim, list(f.path))
            for f in facetsFields])  # Note: a FacetField doesn't have a name
 def testOnlyOneSortValueAllowed(self):
     fields2LuceneDoc = Fields2LuceneDoc('tsname',
         fieldRegistry=FieldRegistry()
     )
     observer = CallTrace()
     fields2LuceneDoc.addObserver(observer)
     fields2LuceneDoc.ctx.tx = Transaction('tsname')
     fields2LuceneDoc.ctx.tx.locals['id'] = 'identifier'
     fields2LuceneDoc.addField('sorted.field', 'value1')
     fields2LuceneDoc.addField('sorted.field', 'value2')
     consume(fields2LuceneDoc.commit('unused'))
     fields = observer.calledMethods[0].kwargs['fields']
     self.assertEquals(1, len(fields))
     self.assertEqual({'sort': True, 'type': 'StringField', 'name': 'sorted.field', 'value': 'value1'}, fields[0])
 def testRewriteFields(self):
     def rewriteFields(fields):
         fields['keys'] = list(sorted(fields.keys()))
         return fields
     fields2LuceneDoc = Fields2LuceneDoc('tsname', rewriteFields=rewriteFields, fieldRegistry=FieldRegistry())
     observer = CallTrace()
     fields2LuceneDoc.addObserver(observer)
     fields2LuceneDoc.ctx.tx = Transaction('tsname')
     fields2LuceneDoc.ctx.tx.locals['id'] = 'identifier'
     fields2LuceneDoc.addField('field1', 'value1')
     fields2LuceneDoc.addField('field2', 'value2')
     consume(fields2LuceneDoc.commit('unused'))
     self.assertEquals(['addDocument'], observer.calledMethodNames())
     fields = observer.calledMethods[0].kwargs['fields']
     self.assertEquals(set(['field1', 'field2', 'keys']), set([f['name'] for f in fields]))
     self.assertEquals(['field1', 'field2'], [f['value'] for f in fields if f['name'] == 'keys'])
 def testAddFacetField(self):
     fields2LuceneDoc = Fields2LuceneDoc('tsname',
         fieldRegistry=FieldRegistry(drilldownFields=[
             DrilldownField('untokenized.field'),
         ])
     )
     observer = CallTrace()
     fields2LuceneDoc.addObserver(observer)
     fields2LuceneDoc.ctx.tx = Transaction('tsname')
     fields2LuceneDoc.ctx.tx.locals['id'] = 'identifier'
     fields2LuceneDoc.addField('field', 'value')
     fields2LuceneDoc.addFacetField('untokenized.field', 'untokenized value')
     consume(fields2LuceneDoc.commit('unused'))
     fields = observer.calledMethods[0].kwargs['fields']
     facetsFields = [f for f in fields if "path" in f]
     self.assertEquals(1, len(facetsFields))
    def testCreateFacet(self):
        fields = {
            'field1': ['value1'],
            'sorted.field3': ['value3'],
            'untokenized.field4': ['value4'],
            'untokenized.field5': ['value5', 'value6'],
            'untokenized.field6': ['value5/value6'],
            'untokenized.field7': ['valuex'],
            'untokenized.field8': [['grandparent', 'parent', 'child'], ['parent2', 'child']]
        }
        fields2LuceneDoc = Fields2LuceneDoc('tsname',
            fieldRegistry=FieldRegistry(drilldownFields=[
                DrilldownField('untokenized.field4'),
                DrilldownField('untokenized.field5'),
                DrilldownField('untokenized.field6'),
                DrilldownField('untokenized.field8', hierarchical=True),
            ])
        )
        observer = CallTrace()
        fields2LuceneDoc.addObserver(observer)
        fields2LuceneDoc.ctx.tx = Transaction('tsname')
        fields2LuceneDoc.ctx.tx.locals['id'] = 'identifier'
        for field, values in fields.items():
            for value in values:
                fields2LuceneDoc.addField(field, value)

        consume(fields2LuceneDoc.commit('unused'))

        fields = observer.calledMethods[0].kwargs['fields']

        searchFields = [f for f in fields if not "path" in f]
        self.assertEquals(['field1', 'sorted.field3', 'untokenized.field7'], [f['name'] for f in searchFields])

        facetsFields = [f for f in fields if "path" in f]
        self.assertEquals(6, len(facetsFields))
        self.assertEquals([
                ('untokenized.field8', ['grandparent', 'parent', 'child']),
                ('untokenized.field8', ['parent2', 'child']),
                ('untokenized.field6', ['value5/value6']),
                ('untokenized.field4', ['value4']),
                ('untokenized.field5', ['value5']),
                ('untokenized.field5', ['value6']),
            ], [(f['name'], f['path']) for f in facetsFields])
Example #16
0
    def testJoinOnlyOnce(self):
        commitCalled = []

        class MockResourceManager(object):
            def commit(self, id):
                commitCalled.append(id)

        tx = Transaction('name')
        resource = MockResourceManager()
        tx.join(resource)
        tx.join(resource)
        list(tx.commit())
        self.assertEqual(1, len(commitCalled))
        self.assertEqual(tx.getId(), commitCalled[0])
 def testAddFacetField(self):
     fields2LuceneDoc = Fields2LuceneDoc(
         'tsname',
         fieldRegistry=FieldRegistry(drilldownFields=[
             DrilldownField('untokenized.field'),
         ]))
     observer = CallTrace()
     fields2LuceneDoc.addObserver(observer)
     fields2LuceneDoc.ctx.tx = Transaction('tsname')
     fields2LuceneDoc.ctx.tx.locals['id'] = 'identifier'
     fields2LuceneDoc.addField('field', 'value')
     fields2LuceneDoc.addFacetField('untokenized.field',
                                    'untokenized value')
     consume(fields2LuceneDoc.commit('unused'))
     document = observer.calledMethods[0].kwargs['document']
     facetsFields = [
         FacetField.cast_(f) for f in document.getFields()
         if FacetField.instance_(f)
     ]
     self.assertEquals(1, len(facetsFields))
Example #18
0
 def testTransactionLocals(self):
     tx = Transaction('name')
     tx.locals['myvar'] = 'value'
     self.assertEquals('value', tx.locals['myvar'])
Example #19
0
 def testTransactionLocals(self):
     tx = Transaction('name')
     tx.locals['myvar'] = 'value'
     self.assertEqual('value', tx.locals['myvar'])