from unittest import TestCase from gcsa.serializers.settings_serializer import SettingsSerializer from gcsa.settings import Settings class TestSettings(TestCase): def test_repr_str(self): settings = Settings( auto_add_hangouts=True, date_field_order='DMY', default_event_length=45, format24_hour_time=True, hide_invitations=True, hide_weekends=True, locale='cz', remind_on_responded_events_only=True, show_declined_events=False, timezone='Europe/Prague', use_keyboard_shortcuts=False, week_start=1, ) expected_str = \ "User settings:\n" \ "auto_add_hangouts=True\n" \ "date_field_order=DMY\n" \ "default_event_length=45\n" \ "format24_hour_time=True\n" \ "hide_invitations=True\n" \ "hide_weekends=True\n" \ "locale=cz\n" \ "remind_on_responded_events_only=True\n" \ "show_declined_events=False\n" \ "timezone=Europe/Prague\n" \ "use_keyboard_shortcuts=False\n" \ "week_start=1" self.assertEqual(settings.__str__(), expected_str) self.assertEqual(settings.__repr__(), expected_str) class TestSettingsSerializer(TestCase): def test_to_json(self): settings = Settings( auto_add_hangouts=True, date_field_order='DMY', default_event_length=45, format24_hour_time=True, hide_invitations=True, hide_weekends=True, locale='cz', remind_on_responded_events_only=True, show_declined_events=False, timezone='Europe/Prague', use_keyboard_shortcuts=False, week_start=1, ) expected_json = { 'autoAddHangouts': settings.auto_add_hangouts, 'dateFieldOrder': settings.date_field_order, 'defaultEventLength': settings.default_event_length, 'format24HourTime': settings.format24_hour_time, 'hideInvitations': settings.hide_invitations, 'hideWeekends': settings.hide_weekends, 'locale': settings.locale, 'remindOnRespondedEventsOnly': settings.remind_on_responded_events_only, 'showDeclinedEvents': settings.show_declined_events, 'timezone': settings.timezone, 'useKeyboardShortcuts': settings.use_keyboard_shortcuts, 'weekStart': settings.week_start } self.assertDictEqual(SettingsSerializer(settings).get_json(), expected_json) def test_to_object(self): settings_json = { 'autoAddHangouts': True, 'dateFieldOrder': 'DMY', 'defaultEventLength': 45, 'format24HourTime': True, 'hideInvitations': True, 'hideWeekends': True, 'locale': 'cz', 'remindOnRespondedEventsOnly': True, 'showDeclinedEvents': False, 'timezone': 'Europe/Prague', 'useKeyboardShortcuts': False, 'weekStart': 1, } settings = SettingsSerializer(settings_json).get_object() self.assertTrue(settings.auto_add_hangouts) self.assertEqual(settings.date_field_order, 'DMY') self.assertEqual(settings.default_event_length, 45) self.assertTrue(settings.format24_hour_time) self.assertTrue(settings.hide_invitations) self.assertTrue(settings.hide_weekends) self.assertEqual(settings.locale, 'cz') self.assertTrue(settings.remind_on_responded_events_only) self.assertFalse(settings.show_declined_events) self.assertEqual(settings.timezone, 'Europe/Prague') self.assertFalse(settings.use_keyboard_shortcuts) self.assertEqual(settings.week_start, 1)