def test_report_parameters_mixin_defaults(self):
        self.login_admin()

        mixin = GeneralReportParametersMixin()

        mixin.request = self.request()
        mixin.context = self.create_resource()

        self.assertEqual(mixin.uuids, [mixin.context.uuid()])

        self.assertEqual(mixin.hidden_statuses, [])
        self.assertEqual(mixin.reservations, [])
        self.assertEqual(mixin.hidden_resources, [])
        self.assertEqual(mixin.show_details, False)
    def test_report_parameters_mixin_defaults(self):
        self.login_admin()

        mixin = GeneralReportParametersMixin()

        mixin.request = self.request()
        mixin.context = self.create_resource()

        self.assertEqual(mixin.uuids, [mixin.context.uuid()])

        self.assertEqual(mixin.hidden_statuses, [])
        self.assertEqual(mixin.reservations, [])
        self.assertEqual(mixin.hidden_resources, [])
        self.assertEqual(mixin.show_details, False)
    def test_report_parameters_mixin_build_url(self):
        self.login_admin()

        mixin = GeneralReportParametersMixin()

        mixin.request = self.request()
        mixin.context = self.create_resource()

        mixin.request.set('hide_status', ['pending'])
        mixin.request.set('show_details', '1')
        mixin.request.set('hide_resource', 'test')

        extras = [('foo', 'bar')]

        expected = (
            'http://nohost/plone/seantis-reservation-resource/test?'
            'show_details=1&hide_status=pending&hide_resource=test&uuid={}'
            '&foo=bar'
        ).format(mixin.context.uuid())

        mixin.__name__ = 'test'  # build_url expects this, usually set by grok
        self.assertEqual(mixin.build_url(extras), expected)
    def test_report_parameters_mixin_build_url(self):
        self.login_admin()

        mixin = GeneralReportParametersMixin()

        mixin.request = self.request()
        mixin.context = self.create_resource()

        mixin.request.set('hide_status', ['pending'])
        mixin.request.set('show_details', '1')
        mixin.request.set('hide_resource', 'test')

        extras = [('foo', 'bar')]

        expected = (
            'http://nohost/plone/seantis-reservation-resource/test?'
            'show_details=1&hide_status=pending&hide_resource=test&uuid={}'
            '&foo=bar').format(mixin.context.uuid())

        mixin.__name__ = 'test'  # build_url expects this, usually set by grok
        self.assertEqual(mixin.build_url(extras), expected)