def setUp(self): super(TestModuleStoreSerializer, self).setUp() self.modulestore_serializer = ModuleStoreSerializer()
class TestModuleStoreSerializer(TestDumpToNeo4jCommandBase): """ Tests for the ModuleStoreSerializer """ def setUp(self): super(TestModuleStoreSerializer, self).setUp() self.modulestore_serializer = ModuleStoreSerializer() def test_serialize_item(self): """ Tests the serialize_item method. """ fields, label = self.modulestore_serializer.serialize_item(self.course) self.assertEqual(label, "course") self.assertIn("edited_on", fields.keys()) self.assertIn("display_name", fields.keys()) self.assertIn("org", fields.keys()) self.assertIn("course", fields.keys()) self.assertIn("run", fields.keys()) self.assertIn("course_key", fields.keys()) self.assertNotIn("checklist", fields.keys()) def test_serialize_course(self): """ Tests the serialize_course method. """ nodes, relationships = self.modulestore_serializer.serialize_course( self.course.id ) self.assertEqual(len(nodes), 9) self.assertEqual(len(relationships), 7) @ddt.data(*ITERABLE_NEO4J_TYPES) def test_coerce_types_iterable(self, iterable_type): """ Tests the coerce_types helper method for iterable types """ example_iterable = iterable_type([object, object, object]) # each element in the iterable is not unicode: self.assertFalse(any(isinstance(tab, six.text_type) for tab in example_iterable)) # but after they are coerced, they are: coerced = self.modulestore_serializer.coerce_types(example_iterable) self.assertTrue(all(isinstance(tab, six.text_type) for tab in coerced)) # finally, make sure we haven't changed the type: self.assertEqual(type(coerced), iterable_type) @ddt.data( (1, 1), (object, "<type 'object'>"), (1.5, 1.5), ("úñîçø∂é", "úñîçø∂é"), (b"plain string", b"plain string"), (True, True), (None, "None"), ) @ddt.unpack def test_coerce_types_base(self, original_value, coerced_expected): """ Tests the coerce_types helper for the neo4j base types """ coerced_value = self.modulestore_serializer.coerce_types(original_value) self.assertEqual(coerced_value, coerced_expected)
class TestModuleStoreSerializer(TestDumpToNeo4jCommandBase): """ Tests for the ModuleStoreSerializer """ def setUp(self): super(TestModuleStoreSerializer, self).setUp() self.modulestore_serializer = ModuleStoreSerializer() def test_serialize_item(self): """ Tests the serialize_item method. """ fields, label = self.modulestore_serializer.serialize_item(self.course) self.assertEqual(label, "course") self.assertIn("edited_on", fields.keys()) self.assertIn("display_name", fields.keys()) self.assertIn("org", fields.keys()) self.assertIn("course", fields.keys()) self.assertIn("run", fields.keys()) self.assertIn("course_key", fields.keys()) self.assertNotIn("checklist", fields.keys()) def test_serialize_course(self): """ Tests the serialize_course method. """ nodes, relationships = self.modulestore_serializer.serialize_course( self.course.id) self.assertEqual(len(nodes), 9) self.assertEqual(len(relationships), 7) @ddt.data(*ITERABLE_NEO4J_TYPES) def test_coerce_types_iterable(self, iterable_type): """ Tests the coerce_types helper method for iterable types """ example_iterable = iterable_type([object, object, object]) # each element in the iterable is not unicode: self.assertFalse( any(isinstance(tab, six.text_type) for tab in example_iterable)) # but after they are coerced, they are: coerced = self.modulestore_serializer.coerce_types(example_iterable) self.assertTrue(all(isinstance(tab, six.text_type) for tab in coerced)) # finally, make sure we haven't changed the type: self.assertEqual(type(coerced), iterable_type) @ddt.data( (1, 1), (object, "<type 'object'>"), (1.5, 1.5), ("úñîçø∂é", "úñîçø∂é"), (b"plain string", b"plain string"), (True, True), (None, "None"), ) @ddt.unpack def test_coerce_types_base(self, original_value, coerced_expected): """ Tests the coerce_types helper for the neo4j base types """ coerced_value = self.modulestore_serializer.coerce_types( original_value) self.assertEqual(coerced_value, coerced_expected)