Esempio n. 1
0
    def testIgnoreList(self):
        request = RequestFactory().get('/?gender=m')
        search_bar = SearchBar(request, [{
            'label': 'gender',
            'choices': (
                ('none', '---'),
                ('m', 'Male'),
                ('f', 'Female'),
            ),
            'ignore_list': ['none']
        }])
        search_bar.is_valid()
        self.assertIn("'gender'", str(search_bar.get_filters()))

        request = RequestFactory().get('/?gender=none')
        search_bar = SearchBar(request, [{
            'label': 'gender',
            'choices': (
                ('none', '---'),
                ('m', 'Male'),
                ('f', 'Female'),
            ),
            'ignore_list': ['none']
        }])
        search_bar.is_valid()
        self.assertNotIn("'gender'", str(search_bar.get_filters()))
Esempio n. 2
0
    def testOutputString(self):
        request = RequestFactory().get('/')
        search_bar = SearchBar(request, ['name', 'age'])
        self.assertIn('id="id_name"', str(search_bar))
        self.assertIn('name="name"', str(search_bar))

        self.assertIn('csrfmiddlewaretoken', str(search_bar.as_form()))
        self.assertIn('<form', str(search_bar.as_form()))
        self.assertIn('</form>', str(search_bar.as_form()))
Esempio n. 3
0
    def testInitializationFailsWithWrongTypes(self):

        request = RequestFactory().get('/')
        self.assertRaises(TypeError, SearchBar)
        self.assertRaises(AssertionError, SearchBar, 1)
        self.assertRaises(AssertionError, SearchBar, request, [[]])
        self.assertRaises(AssertionError, SearchBar, request, [None])
        self.assertRaises(AssertionError, SearchBar, ['name'], request)
        self.assertIsInstance(SearchBar(fields=['name'], request=request), SearchBar)
        self.assertIsInstance(SearchBar(request, ['name']), SearchBar)
        self.assertIsInstance(SearchBar(request, 'name'), SearchBar)
Esempio n. 4
0
    def testIsValidMethodFails(self):
        request = RequestFactory().get('/')
        search_bar = SearchBar(request, 'name')
        self.assertTrue(search_bar.is_valid())
        self.assertFalse(search_bar.is_valid('name'))

        request = RequestFactory().get('/?name=123')
        search_bar = SearchBar(request, ['name', 'age'])
        self.assertTrue(search_bar.is_valid())
        self.assertFalse(search_bar.is_valid('age'))
        self.assertFalse(search_bar.is_valid('age', 'name'))
Esempio n. 5
0
    def testAddFields(self):

        request = RequestFactory().get('/?name=asdasd')
        search_bar = SearchBar(request, ['name'])

        search_bar.is_valid()

        self.assertNotIn('asd1', search_bar)
        search_bar['asd1'] = 'asd'
        self.assertIn('asd1', search_bar)

        search_bar['asd2'] = ({'aaa': 'bbb'},)
        self.assertIn('asd2', search_bar)

        search_bar['asd3'] = {'label': 'ASD', 'choices': ({'aaa': 'bbb'},)}
        self.assertIn('asd3', search_bar)
Esempio n. 6
0
    def testGettingBackTheValue(self):
        request = RequestFactory().get('/?name=arsham&age=6')
        search_bar = SearchBar(request, ['name', 'age'])
        search_bar.is_valid()
        self.assertEqual(search_bar['name'], 'arsham')
        self.assertEqual(search_bar['age'], '6')

        request = RequestFactory().get('/?name=&age=')
        search_bar = SearchBar(request, ['name', 'age'])
        search_bar.is_valid()
        self.assertEqual(search_bar['name'], '')
        self.assertEqual(search_bar['age'], '')
Esempio n. 7
0
 def testInitializationWithChoices(self):
     request = RequestFactory().get('/')
     self.assertIsInstance(SearchBar(request, {'label': 'name'}), SearchBar)
     self.assertIsInstance(SearchBar(request, {
         'label': 'name',
         'choices': ({'aaa': 'bbb'},),
     }), SearchBar)
     self.assertIsInstance(SearchBar(request, {
         'label': 'name',
         'choices': (('aaa', 'bbb'),),
     }), SearchBar)
     self.assertRaises((AssertionError, ValueError), SearchBar, request, {
         'labels': 'name',
         'choices': (('aaa', 'bbb'),),
     })
     self.assertRaises((AssertionError, ValueError), SearchBar, request, {
         'choices': (('aaa', 'bbb'),),
     })
     self.assertRaises((AssertionError, ValueError), SearchBar, request, {
         'label': 'name',
         'choices': None,
     })
Esempio n. 8
0
    def testPopFields(self):

        request = RequestFactory().get('/?name=asdasd&age=10&other=asdasd')
        search_bar = SearchBar(request, ['name', 'age', 'other'])

        search_bar.is_valid()

        self.assertNotIn('asd', search_bar)

        search_bar.pop('age')
        self.assertNotIn('age', search_bar)

        search_bar.pop('other')
        self.assertNotIn('other', search_bar)

        self.assertNotIn('ggg', search_bar)
Esempio n. 9
0
def homepage(request):

    search_bar = SearchBar(request, [
        'name', {
            'label': 'age',
        }, {
            'label': 'order_by',
            'choices': (
                ('asc', 'ASC'),
                ('desc', 'DESC'),
            ),
        }
    ])

    return render(request, 'django_searchbar/test.html', {
        'search_bar': search_bar,
    })
Esempio n. 10
0
    def testChoicesReturnValues(self):
        request = RequestFactory().get('/?name=arsham')
        search_bar = SearchBar(request, {
            'label': 'name',
            'choices': (
                ('arsham', 'Arsham Shirvani'),
                {'ivan': 'Ivan'},
            ),
        })
        search_bar.is_valid()
        self.assertEqual(search_bar['name'], 'arsham')
        self.assertEqual(search_bar.get('name'), 'arsham')

        request = RequestFactory().get('/?name2=arsham')
        search_bar = SearchBar(request, {
            'label': 'name',
            'choices': (
                ('arsham', 'Arsham Shirvani'),
                {'ivan': 'Ivan'},
            ),
        })
        search_bar.is_valid()
        self.assertEqual(search_bar['name'], '')
Esempio n. 11
0
    def testRequiredFields(self):
        request = RequestFactory().get('/?name2=arsham')
        search_bar = SearchBar(request, {
            'label': 'name',
            'choices': (
                ('arsham', 'Arsham Shirvani'),
            ),
            'required': False,
        })

        self.assertTrue(search_bar.is_valid())
        self.assertFalse(search_bar.form.fields['name'].required)

        request = RequestFactory().get('/?name2=arsham')
        search_bar = SearchBar(request, {
            'label': 'name',
            'choices': (
                ('arsham', 'Arsham Shirvani'),
            ),
            'required': True,
        })

        self.assertFalse(search_bar.is_valid())
        self.assertTrue(search_bar.form.fields['name'].required)
Esempio n. 12
0
 def testReplacementsCallable(self):
     request = RequestFactory().get('/?name=arsham&age=6')
     search_bar = SearchBar(request, ['name'], replacements={'name': lambda x: 'username'})
     search_bar.is_valid()
     self.assertIn("'username'", str(search_bar.get_filters()))
     self.assertNotIn("'user__'", str(search_bar.get_filters()))
Esempio n. 13
0
 def testEmptyFilters(self):
     request = RequestFactory().get('/')
     search_bar = SearchBar(request, ['username', 'email'])
     search_bar.is_valid()
     self.assertEqual("(AND: )", str(search_bar.get_filters()))
Esempio n. 14
0
    def testGetFilters(self):
        request = RequestFactory().get('/?username=arsham&email=this_is_an_email')
        search_bar = SearchBar(request, ['username', 'email'])
        search_bar.is_valid()
        self.assertIsInstance(search_bar.get_filters(), Q)
        self.assertIn("'username'", str(search_bar.get_filters()))
        self.assertNotIn("'username__iexact'", str(search_bar.get_filters()))
        self.assertIn("'email'", str(search_bar.get_filters()))
        self.assertIn("'username__icontains'", str(search_bar.get_filters(lookup_string='icontains')))
        self.assertIn("'email__icontains'", str(search_bar.get_filters(lookup_string='icontains')))
        self.assertIn("(AND: ", str(search_bar.get_filters()))
        self.assertIn("arsham", str(search_bar.get_filters()))
        self.assertIn("this_is_an_email", str(search_bar.get_filters()))
        self.assertNotIn('(OR:', str(search_bar.get_filters()))

        search_bar = SearchBar(request, ['username', 'email'])
        search_bar.is_valid()
        self.assertIn("'username'", str(search_bar.get_filters('username')))
        self.assertNotIn("'email__exact'", str(search_bar.get_filters('username')))

        search_bar = SearchBar(request, ['username', 'email', 'age'])
        search_bar.is_valid()
        self.assertIn("'username'", str(search_bar.get_filters('username', 'age')))
        self.assertIn("'username__icontains'", str(search_bar.get_filters('username', 'age', lookup_string='icontains')))
        self.assertIn("'email'", str(search_bar.get_filters('username', 'email')))
        self.assertIn("'username'", str(search_bar.get_filters('username', 'email')))
        self.assertNotIn("'age'", str(search_bar.get_filters('username', 'email')))
Esempio n. 15
0
    def testIsValidMethodPost(self):
        request = RequestFactory().post('/', {'name': 123})
        search_bar = SearchBar(request, 'name')
        self.assertTrue(search_bar.is_valid())
        self.assertTrue(search_bar.is_valid('name'))

        request = RequestFactory().post('/', {'name': 123, 'age': 6, 'error': 'info'})
        search_bar = SearchBar(request, ['name', 'age'])
        self.assertTrue(search_bar.is_valid())
        self.assertTrue(search_bar.is_valid('name'))
        self.assertTrue(search_bar.is_valid('age'))
        self.assertTrue(search_bar.is_valid('age', 'name'))

        request = RequestFactory().post('/', {'name': 123})
        search_bar = SearchBar(request, ['name', 'age'])
        self.assertTrue(search_bar.is_valid('name'))
Esempio n. 16
0
    def testIsValidMethodGet(self):
        request = RequestFactory().get('/?name=123')
        search_bar = SearchBar(request, 'name')
        self.assertTrue(search_bar.is_valid())
        self.assertTrue(search_bar.is_valid('name'))

        request = RequestFactory().get('/?name=123&age=6&error=info')
        search_bar = SearchBar(request, ['name', 'age'])
        self.assertTrue(search_bar.is_valid())
        self.assertTrue(search_bar.is_valid('name'))
        self.assertTrue(search_bar.is_valid('age'))
        self.assertTrue(search_bar.is_valid('age', 'name'))

        request = RequestFactory().get('/?name=123')
        search_bar = SearchBar(request, ['name', 'age'])
        self.assertTrue(search_bar.is_valid('name'))