diff --git a/sqlalchemy_utils/types/weekdays.py b/sqlalchemy_utils/types/weekdays.py index e3c3e95..5a3635c 100644 --- a/sqlalchemy_utils/types/weekdays.py +++ b/sqlalchemy_utils/types/weekdays.py @@ -66,10 +66,12 @@ class WeekDaysType(types.TypeDecorator, ScalarCoercible): def process_bind_param(self, value, dialect): if isinstance(value, WeekDays): - return value.as_bit_string() + value = value.as_bit_string() - if isinstance(value, six.string_types): - return value + if dialect.name == 'mysql': + func = bytes if six.PY3 else bytearray + return func(value, 'utf8') + return value def process_result_value(self, value, dialect): if value is not None: diff --git a/tests/types/test_weekdays.py b/tests/types/test_weekdays.py index 1bda6f2..682b616 100644 --- a/tests/types/test_weekdays.py +++ b/tests/types/test_weekdays.py @@ -35,7 +35,7 @@ class WeekDaysTypeTestCase(TestCase): assert isinstance(schedule.working_days, WeekDays) def test_scalar_attributes_get_coerced_to_objects(self): - schedule = self.Schedule(working_days=u'1010101') + schedule = self.Schedule(working_days='1010101') assert isinstance(schedule.working_days, WeekDays)