def setUp(self): self.encoder = EdxJSONEncoder() class OffsetTZ(tzinfo): """A timezone with non-None utcoffset""" def utcoffset(self, _dt): return timedelta(hours=4) self.offset_tz = OffsetTZ() class NullTZ(tzinfo): """A timezone with None as its utcoffset""" def utcoffset(self, _dt): return None self.null_utc_tz = NullTZ()
def setUp(self): super(TestEdxJsonEncoder, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments self.encoder = EdxJSONEncoder() class OffsetTZ(tzinfo): # lint-amnesty, pylint: disable=abstract-method """A timezone with non-None utcoffset""" def utcoffset(self, _dt): return timedelta(hours=4) self.offset_tz = OffsetTZ() class NullTZ(tzinfo): # lint-amnesty, pylint: disable=abstract-method """A timezone with None as its utcoffset""" def utcoffset(self, _dt): return None self.null_utc_tz = NullTZ()
class TestEdxJsonEncoder(unittest.TestCase): """ Tests for xml_exporter.EdxJSONEncoder """ def setUp(self): super(TestEdxJsonEncoder, self).setUp() self.encoder = EdxJSONEncoder() class OffsetTZ(tzinfo): """A timezone with non-None utcoffset""" def utcoffset(self, _dt): return timedelta(hours=4) self.offset_tz = OffsetTZ() class NullTZ(tzinfo): """A timezone with None as its utcoffset""" def utcoffset(self, _dt): return None self.null_utc_tz = NullTZ() def test_encode_location(self): loc = Location('org', 'course', 'run', 'category', 'name', None) self.assertEqual(loc.to_deprecated_string(), self.encoder.default(loc)) loc = Location('org', 'course', 'run', 'category', 'name', 'version') self.assertEqual(loc.to_deprecated_string(), self.encoder.default(loc)) def test_encode_naive_datetime(self): self.assertEqual( "2013-05-03T10:20:30.000100", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30, 100))) self.assertEqual( "2013-05-03T10:20:30", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30))) def test_encode_utc_datetime(self): self.assertEqual( "2013-05-03T10:20:30+00:00", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30, 0, pytz.UTC))) self.assertEqual( "2013-05-03T10:20:30+04:00", self.encoder.default( datetime(2013, 5, 3, 10, 20, 30, 0, self.offset_tz))) self.assertEqual( "2013-05-03T10:20:30Z", self.encoder.default( datetime(2013, 5, 3, 10, 20, 30, 0, self.null_utc_tz))) def test_fallthrough(self): with self.assertRaises(TypeError): self.encoder.default(None) with self.assertRaises(TypeError): self.encoder.default({})
class TestEdxJsonEncoder(unittest.TestCase): """ Tests for xml_exporter.EdxJSONEncoder """ def setUp(self): super(TestEdxJsonEncoder, self).setUp() self.encoder = EdxJSONEncoder() class OffsetTZ(tzinfo): """A timezone with non-None utcoffset""" def utcoffset(self, _dt): return timedelta(hours=4) self.offset_tz = OffsetTZ() class NullTZ(tzinfo): """A timezone with None as its utcoffset""" def utcoffset(self, _dt): return None self.null_utc_tz = NullTZ() def test_encode_location(self): loc = Location('org', 'course', 'run', 'category', 'name', None) self.assertEqual(loc.to_deprecated_string(), self.encoder.default(loc)) loc = Location('org', 'course', 'run', 'category', 'name', 'version') self.assertEqual(loc.to_deprecated_string(), self.encoder.default(loc)) def test_encode_naive_datetime(self): self.assertEqual( "2013-05-03T10:20:30.000100", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30, 100)) ) self.assertEqual( "2013-05-03T10:20:30", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30)) ) def test_encode_utc_datetime(self): self.assertEqual( "2013-05-03T10:20:30+00:00", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30, 0, pytz.UTC)) ) self.assertEqual( "2013-05-03T10:20:30+04:00", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30, 0, self.offset_tz)) ) self.assertEqual( "2013-05-03T10:20:30Z", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30, 0, self.null_utc_tz)) ) def test_fallthrough(self): with self.assertRaises(TypeError): self.encoder.default(None) with self.assertRaises(TypeError): self.encoder.default({})
class TestEdxJsonEncoder(unittest.TestCase): """ Tests for xml_exporter.EdxJSONEncoder """ def setUp(self): super(TestEdxJsonEncoder, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments self.encoder = EdxJSONEncoder() class OffsetTZ(tzinfo): # lint-amnesty, pylint: disable=abstract-method """A timezone with non-None utcoffset""" def utcoffset(self, _dt): return timedelta(hours=4) self.offset_tz = OffsetTZ() class NullTZ(tzinfo): # lint-amnesty, pylint: disable=abstract-method """A timezone with None as its utcoffset""" def utcoffset(self, _dt): return None self.null_utc_tz = NullTZ() def test_encode_location(self): loc = BlockUsageLocator(CourseLocator('org', 'course', 'run'), 'category', 'name') self.assertEqual(text_type(loc), self.encoder.default(loc)) loc = BlockUsageLocator( CourseLocator('org', 'course', 'run', branch='version'), 'category', 'name') self.assertEqual(text_type(loc), self.encoder.default(loc)) def test_encode_naive_datetime(self): self.assertEqual( "2013-05-03T10:20:30.000100", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30, 100))) self.assertEqual( "2013-05-03T10:20:30", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30))) def test_encode_utc_datetime(self): self.assertEqual( "2013-05-03T10:20:30+00:00", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30, 0, pytz.UTC))) self.assertEqual( "2013-05-03T10:20:30+04:00", self.encoder.default( datetime(2013, 5, 3, 10, 20, 30, 0, self.offset_tz))) self.assertEqual( "2013-05-03T10:20:30Z", self.encoder.default( datetime(2013, 5, 3, 10, 20, 30, 0, self.null_utc_tz))) def test_fallthrough(self): with self.assertRaises(TypeError): self.encoder.default(None) with self.assertRaises(TypeError): self.encoder.default({}) def test_encode_unicode_lazy_text(self): """ Verify that the encoding is functioning fine with lazy text """ # Initializing a lazy text object with Unicode unicode_text = u"Your 𝓟𝓵𝓪𝓽𝓯𝓸𝓻𝓶 Name Here" lazy_text = ugettext_lazy(unicode_text) # lint-amnesty, pylint: disable=translation-of-non-string self.assertEqual(unicode_text, self.encoder.default(lazy_text))
class TestEdxJsonEncoder(unittest.TestCase): """ Tests for xml_exporter.EdxJSONEncoder """ def setUp(self): super(TestEdxJsonEncoder, self).setUp() self.encoder = EdxJSONEncoder() class OffsetTZ(tzinfo): """A timezone with non-None utcoffset""" def utcoffset(self, _dt): return timedelta(hours=4) self.offset_tz = OffsetTZ() class NullTZ(tzinfo): """A timezone with None as its utcoffset""" def utcoffset(self, _dt): return None self.null_utc_tz = NullTZ() def test_encode_location(self): loc = BlockUsageLocator(CourseLocator('org', 'course', 'run'), 'category', 'name') self.assertEqual(text_type(loc), self.encoder.default(loc)) loc = BlockUsageLocator(CourseLocator('org', 'course', 'run', branch='version'), 'category', 'name') self.assertEqual(text_type(loc), self.encoder.default(loc)) def test_encode_naive_datetime(self): self.assertEqual( "2013-05-03T10:20:30.000100", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30, 100)) ) self.assertEqual( "2013-05-03T10:20:30", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30)) ) def test_encode_utc_datetime(self): self.assertEqual( "2013-05-03T10:20:30+00:00", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30, 0, pytz.UTC)) ) self.assertEqual( "2013-05-03T10:20:30+04:00", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30, 0, self.offset_tz)) ) self.assertEqual( "2013-05-03T10:20:30Z", self.encoder.default(datetime(2013, 5, 3, 10, 20, 30, 0, self.null_utc_tz)) ) def test_fallthrough(self): with self.assertRaises(TypeError): self.encoder.default(None) with self.assertRaises(TypeError): self.encoder.default({}) def test_encode_unicode_lazy_text(self): """ Verify that the encoding is functioning fine with lazy text """ # Initializing a lazy text object with Unicode unicode_text = u"Your 𝓟𝓵𝓪𝓽𝓯𝓸𝓻𝓶 Name Here" lazy_text = ugettext_lazy(unicode_text) self.assertEquals( unicode_text, self.encoder.default(lazy_text) )