def testEchoedExtraRequestDataWithJsonFormat(self):
        component = SruTermDrilldown()

        result = "".join(
            list(
                component.echoedExtraRequestData(sruArguments={
                    'x-term-drilldown': ['field0/field1,field2', 'field3'],
                    'version':
                    '1.1',
                    'x-drilldown-format': ['json']
                },
                                                 version='1.1')))

        self.assertEqualsWS(_DRILLDOWN_HEADER % _DRILLDOWN_XSD_2013 + """
            <dd:request>
                <dd:x-term-drilldown>field0/field1</dd:x-term-drilldown>
                <dd:x-term-drilldown>field2</dd:x-term-drilldown>
                <dd:x-term-drilldown>field3</dd:x-term-drilldown>
                <dd:x-drilldown-format>json</dd:x-drilldown-format>
            </dd:request>""" +\
            DRILLDOWN_FOOTER, result)

        xsdFilename = self._getXsdFilename(result)
        assertValid(result, join(schemasPath, xsdFilename))
        with open(join(schemasPath, xsdFilename)) as fp:
            assertValid(fp.read(), join(schemasPath, 'XMLSchema.xsd'))
    def testEchoedExtraRequestData(self):
        component = SruTermDrilldown()

        result = "".join(list(component.echoedExtraRequestData(sruArguments={'x-term-drilldown': ['field0,field1'], 'version': '1.1'}, version='1.1')))

        self.assertEqualsWS(DRILLDOWN_HEADER \
        + """<dd:term-drilldown>field0,field1</dd:term-drilldown>"""\
        + DRILLDOWN_FOOTER, result)
    def testEchoedExtraRequestDataWithEmptyTermDrilldownFormat(self):
        component = SruTermDrilldown(defaultFormat=FORMAT_XML)

        result = "".join(
            list(
                component.echoedExtraRequestData(sruArguments={
                    'x-term-drilldown': [''],
                    'version': '1.1'
                },
                                                 version='1.1')))

        self.assertEqualsWS("", result)
    def testEchoedExtraRequestData(self):
        component = SruTermDrilldown()

        result = "".join(
            list(
                component.echoedExtraRequestData(sruArguments={
                    'x-term-drilldown': ['field0,field1'],
                    'version':
                    '1.1'
                },
                                                 version='1.1')))

        self.assertEqualsWS(DRILLDOWN_HEADER \
        + """<dd:term-drilldown>field0,field1</dd:term-drilldown>"""\
        + DRILLDOWN_FOOTER, result)
    def testEchoedExtraRequestDataWithJsonFormat(self):
        component = SruTermDrilldown()

        result = "".join(list(component.echoedExtraRequestData(sruArguments={'x-term-drilldown': ['field0/field1,field2','field3'], 'version': '1.1', 'x-drilldown-format': ['json']}, version='1.1')))

        self.assertEqualsWS(_DRILLDOWN_HEADER % _DRILLDOWN_XSD_2013 + """
            <dd:request>
                <dd:x-term-drilldown>field0/field1</dd:x-term-drilldown>
                <dd:x-term-drilldown>field2</dd:x-term-drilldown>
                <dd:x-term-drilldown>field3</dd:x-term-drilldown>
                <dd:x-drilldown-format>json</dd:x-drilldown-format>
            </dd:request>""" +\
            DRILLDOWN_FOOTER, result)

        xsdFilename = self._getXsdFilename(result)
        assertValid(result, join(schemasPath, xsdFilename))
        assertValid(open(join(schemasPath, xsdFilename)).read(), join(schemasPath, 'XMLSchema.xsd'))
    def testEchoedExtraRequestDataWithEmptyTermDrilldownFormat(self):
        component = SruTermDrilldown(defaultFormat=FORMAT_XML)

        result = "".join(list(component.echoedExtraRequestData(sruArguments={'x-term-drilldown': [''], 'version': '1.1'}, version='1.1')))

        self.assertEqualsWS("", result)