'Helper method to create different draft and published versions of a problem.'

def _make_draft_content_different_from_published(self):

    self.client.ajax_post(self.problem_update_url, data={'publish': 'make_public'})
    self._verify_published_with_no_draft(self.problem_usage_key)
    published = modulestore().get_item(self.problem_usage_key, revision=ModuleStoreEnum.RevisionOption.published_only)
    self.client.ajax_post(self.problem_update_url, data={'metadata': {'due': '2077-10-10T04:00Z'}})
    updated_draft = self.get_item_from_modulestore(self.problem_usage_key, verify_is_draft=True)
    self.assertEqual(updated_draft.due, datetime(2077, 10, 10, 4, 0, tzinfo=UTC))
    self.assertIsNone(published.due)
    published = modulestore().get_item(published.location, revision=ModuleStoreEnum.RevisionOption.published_only)
    self.assertIsNone(published.due)
