class AnnotationToFieldsListTest(SeecrTestCase):
    def testFieldsFromSummaryAnnotation(self):
        self._createAnnotationToFieldsList()
        consume(self.annotationTofieldslist.add(lxmlNode=XML(ANNOTATION_SUMMARIZING)))
        fields = self. observer.calledMethods[0].kwargs['fieldslist']
        self.assertEquals([
                ('oa:annotatedBy.uri', "http://data.bibliotheek.nl/id/bnl"),
                ('oa:motivatedBy.uri', "http://data.bibliotheek.nl/ns/nbc/oa#summarizing"),
                ('oa:hasTarget.uri', "http://data.bibliotheek.nl/ggc/ppn/78240829X"),
                ('rdf:type.uri', "http://dbpedia.org/ontology/Book"),
                ('dcterms:type.uri', "http://dbpedia.org/ontology/Book"),
                ('dcterms:title', 'De Båèrkểnhuizen, Anno 1349'),
                ('dcterms:identifier.uri', 'http://data.bibliotheek.nl/ggc/ppn/78240829X'),
                ('dcterms:creator', 'Nieuwkerk Kramer, H G'),
                ('dcterms:creator.uri', 'http://data.bibliotheek.nl/ggc/ppn/987'),
                ('dcterms:creator.rdfs:label', 'Some Author'),
                ('dcterms:date', '1966'),
                ('dcterms:language.uri', 'urn:iso:std:iso:639:-2:dut'),
                ('dcterms:language.rdfs:label', 'Nederlands'),
                ('dcterms:extent', '15 p'),
                ('dcterms:isFormatOf.uri', "urn:a:work:123"),
                ('skos:note', 'BQM_14'),
                ('dcterms:spatial.uri', 'http://data.bibliotheek.nl/uitburo/location/8e71243e-abb0-407b-83a1-303db1f676e0'),
                ('dcterms:spatial.rdfs:label', 'Museum Boerhaave'),
                ('dcterms:spatial.geo:lat', '52.1613636'),
                ('dcterms:spatial.geo:long', '4.4891784'),
                ('dcterms:spatial.vcard:region', 'Leiden')
            ], fields)


    def testOnlyFieldsMatchingFilter(self):
        self._createAnnotationToFieldsList(filterFields={"dcterms:title":{'max_length': 10}, "rdf:type.uri":{}})
        consume(self.annotationTofieldslist.add(lxmlNode=XML(ANNOTATION_SUMMARIZING)))
        fields = self. observer.calledMethods[0].kwargs['fieldslist']
        self.assertEquals([
                ('rdf:type.uri', "http://dbpedia.org/ontology/Book"),
                ('dcterms:title', 'De Båèrkển'),
            ], fields)


    def _createAnnotationToFieldsList(self, **kwargs):
        self.annotationTofieldslist = AnnotationToFieldsList(namespaces=namespaces, **kwargs)
        self.observer = CallTrace(emptyGeneratorMethods=['add'])
        self.annotationTofieldslist.addObserver(self.observer)
 def _createAnnotationToFieldsList(self, **kwargs):
     self.annotationTofieldslist = AnnotationToFieldsList(namespaces=namespaces, **kwargs)
     self.observer = CallTrace(emptyGeneratorMethods=['add'])
     self.annotationTofieldslist.addObserver(self.observer)