Beispiel #1
0
    def test_widget_value_from_datadict(self):
        w = CSVWidget()

        data = {'price': None}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, None)

        data = {'price': '1'}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, ['1'])

        data = {'price': '1,2'}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, ['1', '2'])

        data = {'price': '1,,2'}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, ['1', '', '2'])

        data = {'price': '1,'}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, ['1', ''])

        data = {'price': ','}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, ['', ''])

        data = {'price': ''}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, [])

        result = w.value_from_datadict({}, {}, 'price')
        self.assertEqual(result, None)
Beispiel #2
0
    def test_widget(self):
        w = CSVWidget()
        self.assertHTMLEqual(
            w.render('price', None), """
            <input type="text" name="price" />""")

        self.assertHTMLEqual(
            w.render('price', ''), """
            <input type="text" name="price" />""")

        self.assertHTMLEqual(
            w.render('price', []), """
            <input type="text" name="price" />""")

        self.assertHTMLEqual(
            w.render('price', '1'), """
            <input type="text" name="price" value="1" />""")

        self.assertHTMLEqual(
            w.render('price', '1,2'), """
            <input type="text" name="price" value="1,2" />""")

        self.assertHTMLEqual(
            w.render('price', ['1', '2']), """
            <input type="text" name="price" value="1,2" />""")

        self.assertHTMLEqual(
            w.render('price', [1, 2]), """
            <input type="text" name="price" value="1,2" />""")
    def test_widget_value_from_datadict(self):
        w = CSVWidget()

        data = {'price': None}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, None)

        data = {'price': '1'}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, ['1'])

        data = {'price': '1,2'}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, ['1', '2'])

        data = {'price': '1,,2'}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, ['1', '', '2'])

        data = {'price': '1,'}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, ['1', ''])

        data = {'price': ','}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, ['', ''])

        data = {'price': ''}
        result = w.value_from_datadict(data, {}, 'price')
        self.assertEqual(result, [])

        result = w.value_from_datadict({}, {}, 'price')
        self.assertEqual(result, None)
Beispiel #4
0
    def test_derived_widget(self):
        with self.assertRaises(AssertionError) as excinfo:
            BaseCSVField(widget=RangeWidget())

        msg = str(excinfo.exception)
        self.assertIn("'BaseCSVField.widget' must be a widget class", msg)
        self.assertIn("RangeWidget", msg)

        widget = CSVWidget()
        field = BaseCSVField(widget=widget)
        self.assertIs(field.widget, widget)

        field = BaseCSVField(widget=CSVWidget)
        self.assertIsInstance(field.widget, CSVWidget)

        field = BaseCSVField(widget=forms.Select)
        self.assertIsInstance(field.widget, forms.Select)
        self.assertIsInstance(field.widget, BaseCSVWidget)
Beispiel #5
0
class PublicDataFileFilter(FilterSet):
    """
    A FilterSet that maps member_id and username to less verbose names.
    """

    created = StartEndDateFromToRangeFilter()
    member_id = CharFilter(name='user__member__member_id')
    username = CharFilter(name='user__username')
    source = MultipleChoiceFilter(
        choices=get_source_labels_and_names_including_dynamic,
        widget=CSVWidget())
    # don't filter by source if no sources are specified; this improves speed
    source.always_filter = False

    strict = STRICTNESS.RAISE_VALIDATION_ERROR

    class Meta:  # noqa: D101
        model = DataFile
        fields = ('created', 'source', 'username', 'member_id')
    def test_widget(self):
        w = CSVWidget()
        self.assertHTMLEqual(w.render('price', None), """
            <input type="text" name="price" />""")

        self.assertHTMLEqual(w.render('price', ''), """
            <input type="text" name="price" />""")

        self.assertHTMLEqual(w.render('price', []), """
            <input type="text" name="price" />""")

        self.assertHTMLEqual(w.render('price', '1'), """
            <input type="text" name="price" value="1" />""")

        self.assertHTMLEqual(w.render('price', '1,2'), """
            <input type="text" name="price" value="1,2" />""")

        self.assertHTMLEqual(w.render('price', ['1', '2']), """
            <input type="text" name="price" value="1,2" />""")

        self.assertHTMLEqual(w.render('price', [1, 2]), """
            <input type="text" name="price" value="1,2" />""")
Beispiel #7
0
class LegacyPublicDataFileFilter(FilterSet):
    """
    A FilterSet that maps member_id and username to less verbose names.
    """

    created = StartEndDateFromToRangeFilter()
    member_id = CharFilter(field_name="user__member__member_id")
    username = CharFilter(field_name="user__username")
    source = MultipleChoiceFilter(
        choices=get_source_labels_and_names_including_dynamic,
        widget=CSVWidget())
    # don't filter by source if no sources are specified; this improves speed
    source.always_filter = False

    class Meta:  # noqa: D101
        """
        Metaclass
        """

        model = DataFile
        fields = ("created", "source", "username", "member_id")