Ejemplo n.º 1
0
 def setUp(self):
     self.registry = MultiseekRegistry()
     self.registry.add_field(StringQueryObject('foo'))
     self.registry.add_field(RangeQueryObject('bar'))
     self.registry.add_field(RangeQueryObject('quux', public=False))
     self.registry.report_types = [
         ReportType("list", "List"),
         ReportType("table", "Table")
     ]
     self.registry.ordering = [
         Ordering("foo", "Foo"),
         Ordering("bar", "Bar"),
     ]
Ejemplo n.º 2
0
 def setUp(self):
     self.registry = MultiseekRegistry()
     self.registry.add_field(StringQueryObject('foo'))
     self.registry.add_field(RangeQueryObject('bar'))
     self.registry.add_field(RangeQueryObject('quux', public=False))
     self.registry.report_types = [
         ReportType("list", "List"),
         ReportType("table", "Table")
     ]
     self.registry.ordering = [
         Ordering("foo", "Foo"),
         Ordering("bar", "Bar"),
     ]
Ejemplo n.º 3
0
class TestMultiseekRegistry(TestCase):
    def setUp(self):
        self.registry = MultiseekRegistry()
        self.registry.add_field(StringQueryObject('foo'))
        self.registry.add_field(RangeQueryObject('bar'))
        self.registry.add_field(RangeQueryObject('quux', public=False))
        self.registry.report_types = [
            ReportType("list", "List"),
            ReportType("table", "Table")
        ]
        self.registry.ordering = [
            Ordering("foo", "Foo"),
            Ordering("bar", "Bar"),
        ]

    def test_add_field_raises(self):
        self.assertRaises(
            AssertionError, self.registry.add_field, StringQueryObject('foo'))

    def test_field_by_type(self):
        self.assertEquals(
            len(self.registry.field_by_type(STRING)),
            1)

        self.assertEquals(
            len(self.registry.field_by_type(RANGE, public=False)),
            2)

    def test_extract(self):
        self.assertEquals(
            self.registry.extract('field_name'), ['foo', 'bar'])

        self.assertEquals(
            self.registry.extract('field_name', public=False),
            ['foo', 'bar', 'quux'])

    def test_parse_field(self):
        self.assertRaises(
            ParseError,
            self.registry.parse_field, {})

        self.assertRaises(
            UnknownField,
            self.registry.parse_field,
            dict(field='XXX', operator='IS', value='LOL', prev_op=None))

        self.assertRaises(
            UnknownOperation,
            self.registry.parse_field,
            dict(field='foo', operator='XXX', value='FO', prev_op=None))

        res = self.registry.parse_field(
            dict(field='foo', operator=EQUALITY_OPS_ALL[0], value='foo', prev_op=None))

        self.assertEquals(str(res),
                          py3k_test_string("(AND: (u'foo', u'foo'))"))

    def test_get_recursive_list(self):
        input = [None,
            [None, [None, dict(field='foo', operator=text(EQUALITY_OPS_ALL[0]), value='foo', prev_op=None)]],
            dict(field='foo', operator=text(EQUALITY_OPS_ALL[0]), value='bar', prev_op="BAD OP")]

        self.assertRaises(
            UnknownOperation,
            self.registry.get_query_recursive,
            input)

        input[2]['prev_op'] = OR

        res = self.registry.get_query_recursive(input)
        self.assertEquals(
            str(res),
            py3k_test_string("(OR: (u'foo', u'foo'), (u'foo', u'bar'))"))

    def test_get_query(self):
        gq = self.registry.get_query(json.loads(test_json)['form_data'])
        self.assertEquals(
            str(gq),
            py3k_test_string("(AND: (u'foo', u'foo'))"))

    def test_get_query_for_model(self):
        self.registry.model = MagicMock()
        self.registry.get_query_for_model(json.loads(test_json))
        self.registry.get_query_for_model(None)

    def test_recreate_form(self):
        op = text(EQUALITY_OPS_ALL[0])
        fld_noop = dict(field='foo', operator=op, value=u'foo', prev_op=None)
        fld_and = dict(field='foo', operator=op, value=u'foo', prev_op=AND)
        fld_or = dict(field='foo', operator=op, value=u'foo', prev_op=OR)
        res = self.registry.recreate_form(
            {'form_data':
                 [None,
                  fld_noop,
                  fld_or, [
                     AND,
                     fld_noop,
                     fld_or],
                  fld_and,
                  [OR,
                   fld_noop,
                   fld_or]
                 ],
             'ordering': {
                 '%s1' % MULTISEEK_ORDERING_PREFIX: "1",
                 '%s1_dir' % MULTISEEK_ORDERING_PREFIX: "1",
             },
             'report_type': '1'})

        self.maxDiff = None

        ex = u"""$('#frame-0').multiseekFrame('addField', 'foo', 'equals', 'foo', null);
$('#frame-0').multiseekFrame('addField', 'foo', 'equals', 'foo', 'or');
$('#frame-0').multiseekFrame('addFrame', 'and');
$('#frame-1').multiseekFrame('addField', 'foo', 'equals', 'foo', null);
$('#frame-1').multiseekFrame('addField', 'foo', 'equals', 'foo', 'or');
$('#frame-0').multiseekFrame('addField', 'foo', 'equals', 'foo', 'and');
$('#frame-0').multiseekFrame('addFrame', 'or');
$('#frame-2').multiseekFrame('addField', 'foo', 'equals', 'foo', null);
$('#frame-2').multiseekFrame('addField', 'foo', 'equals', 'foo', 'or');
\t\t$("select[name=order_1] option").eq(1).prop("selected", true);
\t\t$("input[name=order_1_dir]").attr("checked", true);
\t\t$("select[name=_ms_report_type] option").eq(1).prop("selected", true);
\t\tif (window.Foundation) {
\t\t\t$("input[name=order_1_dir]").next().toggleClass("checked", true)
\t\t}\n""" % dict(equal=EQUAL)

        self.assertEquals(ex, res)

    def     test_create_registry(self):
        create_registry(None, StringQueryObject('foo'))

    def test_get_registry(self):
        r = get_registry('test_app.multiseek_registry')
        from test_app.multiseek_registry import registry

        self.assertEquals(r, registry)

    def test_bug_3(self):
        f = self.registry.fields[0]
        v = self.registry.fields[0].ops[0]
        value = 'foo'

        field = make_field(f, v, value)
        field_or = make_field(f, v, value, "lol")

        form = {'form_data': [None, field, field, field, field_or]}

        self.assertRaises(
            ParseError, self.registry.recreate_form, form)
Ejemplo n.º 4
0
class TestMultiseekRegistry(TestCase):
    def setUp(self):
        self.registry = MultiseekRegistry()
        self.registry.add_field(StringQueryObject('foo'))
        self.registry.add_field(RangeQueryObject('bar'))
        self.registry.add_field(RangeQueryObject('quux', public=False))
        self.registry.report_types = [
            ReportType("list", "List"),
            ReportType("table", "Table")
        ]
        self.registry.ordering = [
            Ordering("foo", "Foo"),
            Ordering("bar", "Bar"),
        ]

    def test_add_field_raises(self):
        self.assertRaises(AssertionError, self.registry.add_field,
                          StringQueryObject('foo'))

    def test_field_by_type(self):
        self.assertEquals(len(self.registry.field_by_type(STRING)), 1)

        self.assertEquals(
            len(self.registry.field_by_type(RANGE, public=False)), 2)

    def test_extract(self):
        self.assertEquals(self.registry.extract('field_name'), ['foo', 'bar'])

        self.assertEquals(self.registry.extract('field_name', public=False),
                          ['foo', 'bar', 'quux'])

    def test_parse_field(self):
        self.assertRaises(ParseError, self.registry.parse_field, {})

        self.assertRaises(
            UnknownField, self.registry.parse_field,
            dict(field='XXX', operator='IS', value='LOL', prev_op=None))

        self.assertRaises(
            UnknownOperation, self.registry.parse_field,
            dict(field='foo', operator='XXX', value='FO', prev_op=None))

        res = self.registry.parse_field(
            dict(field='foo',
                 operator=EQUALITY_OPS_ALL[0],
                 value='foo',
                 prev_op=None))

        self.assertEquals(str(res), "(AND: ('foo', 'foo'))")

    def test_get_recursive_list(self):
        input = [
            None,
            [
                None,
                [
                    None,
                    dict(field='foo',
                         operator=unicode(EQUALITY_OPS_ALL[0]),
                         value='foo',
                         prev_op=None)
                ]
            ],
            dict(field='foo',
                 operator=unicode(EQUALITY_OPS_ALL[0]),
                 value='bar',
                 prev_op="BAD OP")
        ]

        self.assertRaises(UnknownOperation, self.registry.get_query_recursive,
                          input)

        input[2]['prev_op'] = OR

        res = self.registry.get_query_recursive(input)
        self.assertEquals(str(res), "(OR: ('foo', 'foo'), ('foo', 'bar'))")

    def test_get_query(self):
        self.assertEquals(
            str(self.registry.get_query(json.loads(test_json)['form_data'])),
            "(AND: ('foo', 'foo'))")

    def test_get_query_for_model(self):
        self.registry.model = MagicMock()
        self.registry.get_query_for_model(json.loads(test_json))
        self.registry.get_query_for_model(None)

    def test_recreate_form(self):
        op = unicode(EQUALITY_OPS_ALL[0])
        fld_noop = dict(field='foo', operator=op, value=u'foo', prev_op=None)
        fld_and = dict(field='foo', operator=op, value=u'foo', prev_op=AND)
        fld_or = dict(field='foo', operator=op, value=u'foo', prev_op=OR)
        res = self.registry.recreate_form({
            'form_data': [
                None, fld_noop, fld_or, [AND, fld_noop, fld_or], fld_and,
                [OR, fld_noop, fld_or]
            ],
            'ordering': {
                '%s1' % MULTISEEK_ORDERING_PREFIX: "1",
                '%s1_dir' % MULTISEEK_ORDERING_PREFIX: "1",
            },
            'report_type':
            '1'
        })

        self.maxDiff = None

        ex = u"""$('#frame-0').multiseekFrame('addField', 'foo', 'equals', 'foo', null);
$('#frame-0').multiseekFrame('addField', 'foo', 'equals', 'foo', 'or');
$('#frame-0').multiseekFrame('addFrame', 'and');
$('#frame-1').multiseekFrame('addField', 'foo', 'equals', 'foo', null);
$('#frame-1').multiseekFrame('addField', 'foo', 'equals', 'foo', 'or');
$('#frame-0').multiseekFrame('addField', 'foo', 'equals', 'foo', 'and');
$('#frame-0').multiseekFrame('addFrame', 'or');
$('#frame-2').multiseekFrame('addField', 'foo', 'equals', 'foo', null);
$('#frame-2').multiseekFrame('addField', 'foo', 'equals', 'foo', 'or');
\t\t$("select[name=order_1] option").eq(1).prop("selected", true);
\t\t$("input[name=order_1_dir]").attr("checked", true);
\t\t$("select[name=_ms_report_type] option").eq(1).prop("selected", true);
\t\tif (window.Foundation) {
\t\t\t$("input[name=order_1_dir]").next().toggleClass("checked", true)
\t\t}\n""" % dict(equal=EQUAL)

        self.assertEquals(ex, res)

    def test_create_registry(self):
        create_registry(None, StringQueryObject('foo'))

    def test_get_registry(self):
        r = get_registry('test_app.multiseek_registry')
        from test_app.multiseek_registry import registry

        self.assertEquals(r, registry)

    def test_bug_3(self):
        f = self.registry.fields[0]
        v = self.registry.fields[0].ops[0]
        value = 'foo'

        field = make_field(f, v, value)
        field_or = make_field(f, v, value, "lol")

        form = {'form_data': [None, field, field, field, field_or]}

        self.assertRaises(ParseError, self.registry.recreate_form, form)