'Tests that has_changes() only returns true when changes are present'

@ddt.data(ModuleStoreEnum.Type.mongo, ModuleStoreEnum.Type.split)
def test_has_changes(self, default_ms):

    self.initdb(default_ms)
    test_course = self.store.create_course('testx', 'GreekHero', 'test_run', self.user_id)
    xblock = self.store.create_item(self.user_id, test_course.id, 'vertical', block_id='test_vertical')
    self.assertTrue(self.store.has_changes(xblock))
    newXBlock = self.store.publish(xblock.location, self.user_id)
    self.assertFalse(self.store.has_changes(newXBlock))
    component = self.store.get_item(xblock.location)
    component.display_name = 'Changed    Display    Name'
    component = self.store.update_item(component, self.user_id)
    self.assertTrue(self.store.has_changes(component))
    component = self.store.publish(component.location, self.user_id)
    self.assertFalse(self.store.has_changes(component))
