    async def test_char_fuzz(self):
        for char in DODGY_STRINGS:
            # print(repr(char))

            # Create
            obj1 = await CharFields.create(char=char)

            # Get-by-pk, and confirm that reading is correct
            obj2 = await CharFields.get(pk=obj1.pk)
            self.assertEqual(char, obj2.char)

            # Update data using a queryset, confirm that update is correct
            await CharFields.filter(pk=obj1.pk).update(char="a")
            await CharFields.filter(pk=obj1.pk).update(char=char)
            obj3 = await CharFields.get(pk=obj1.pk)
            self.assertEqual(char, obj3.char)

            # Filter by value in queryset, and confirm that it fetched the right one
            obj4 = await CharFields.get(pk=obj1.pk, char=char)
            self.assertEqual(obj1.pk, obj4.pk)
            self.assertEqual(char, obj4.char)

            # LIKE statements are not strict, so require all of these to match
            obj5 = await CharFields.get(
                pk=obj1.pk,
                char__startswith=char,
                char__endswith=char,
                char__contains=char,
                char__istartswith=char,
                char__iendswith=char,
                char__icontains=char,
            )
            self.assertEqual(obj1.pk, obj5.pk)
            self.assertEqual(char, obj5.char)
The software constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component.