def test_publish_program_edit(self): self.mock_api_client(200) self.mock_node_retrieval(self.program.uuid) self.mock_node_edit(200) publisher = MarketingSitePublisher() publisher.publish_program(self.program) self.assert_responses_call_count(6)
def test_publish_program_edit(self): self.mock_api_client(200) self.mock_node_retrieval(self.program.uuid) self.mock_node_edit(200) publisher = MarketingSitePublisher() publisher.publish_program(self.program) self.assert_responses_call_count(6)
def test_publish_program_no_credential(self): self.program.partner.marketing_site_api_password = None self.program.partner.marketing_site_api_username = None publisher = MarketingSitePublisher() with self.assertRaises(ProgramPublisherException): publisher.publish_program(self.program) self.assert_responses_call_count(0)
def test_publish_program_no_credential(self): self.program.partner.marketing_site_api_password = None self.program.partner.marketing_site_api_username = None publisher = MarketingSitePublisher() with self.assertRaises(ProgramPublisherException): publisher.publish_program(self.program) self.assert_responses_call_count(0)
def test_publish_modified_program(self): self.mock_api_client(200) self.mock_node_retrieval(self.program.uuid) self.mock_node_edit(200) program_before = ProgramFactory() publisher = MarketingSitePublisher(program_before) publisher.publish_program(self.program) self.assert_responses_call_count(6)
def test_publish_modified_program(self): self.mock_api_client(200) self.mock_node_retrieval(self.program.uuid) self.mock_node_edit(200) program_before = ProgramFactory() publisher = MarketingSitePublisher(program_before) publisher.publish_program(self.program) self.assert_responses_call_count(6)
def test_publish_program_create(self): self.mock_api_client(200) expected = {'list': [{'nid': self.nid}]} self.mock_node_retrieval(self.program.uuid, exists=False) self.mock_node_create(expected, 201) publisher = MarketingSitePublisher() publisher.publish_program(self.program) self.assert_responses_call_count(6)
def test_add_alias_failed(self): self.mock_api_client(200) self.mock_node_retrieval(self.program.uuid) self.mock_node_edit(200) publisher = MarketingSitePublisher() self.mock_add_alias(500) with mock.patch.object(MarketingSitePublisher, '_get_form_build_id_and_form_token', return_value={}): with self.assertRaises(ProgramPublisherException): publisher.publish_program(self.program)
def test_publish_program_create(self): self.mock_api_client(200) self.mock_node_retrieval(self.program.uuid, exists=False) self.mock_node_create(self.expected_node, 201) publisher = MarketingSitePublisher() self.mock_add_alias() with mock.patch.object(MarketingSitePublisher, '_get_headers', return_value={}): with mock.patch.object(MarketingSitePublisher, '_get_form_build_id_and_form_token', return_value={}): publisher.publish_program(self.program) self.assert_responses_call_count(8)
def test_get_alias_form(self): self.mock_api_client(200) self.mock_node_retrieval(self.program.uuid) self.mock_node_edit(200) publisher = MarketingSitePublisher() self.mock_add_alias() self.mock_get_alias_form() with mock.patch.object(MarketingSitePublisher, '_get_headers', return_value={}): publisher.publish_program(self.program) self.assert_responses_call_count(9)
def test_publish_program_create(self): self.mock_api_client(200) expected = { 'list': [{ 'nid': self.nid }] } self.mock_node_retrieval(self.program.uuid, exists=False) self.mock_node_create(expected, 201) publisher = MarketingSitePublisher() publisher.publish_program(self.program) self.assert_responses_call_count(6)
def test_get_delete_form_failed(self): self.mock_api_client(200) self.mock_node_retrieval(self.program.uuid) self.mock_node_edit(200) program_before = ProgramFactory() publisher = MarketingSitePublisher(program_before) self.mock_add_alias() self.mock_get_delete_form(program_before.marketing_slug, 500) with mock.patch.object(MarketingSitePublisher, '_get_headers', return_value={}): with mock.patch.object(MarketingSitePublisher, '_get_form_build_id_and_form_token', return_value={}): with self.assertRaises(ProgramPublisherException): publisher.publish_program(self.program)
def test_publish_modified_program(self): self.mock_api_client(200) self.mock_node_retrieval(self.program.uuid) self.mock_node_edit(200) program_before = ProgramFactory() publisher = MarketingSitePublisher(program_before) self.mock_add_alias() self.mock_delete_alias() with mock.patch.object(MarketingSitePublisher, '_get_headers', return_value={}): with mock.patch.object(MarketingSitePublisher, '_get_form_build_id_and_form_token', return_value={}): with mock.patch.object(MarketingSitePublisher, '_get_delete_alias_url', return_value='/foo'): publisher.publish_program(self.program) self.assert_responses_call_count(9)
def save(self, *args, **kwargs): if waffle.switch_is_active('publish_program_to_marketing_site') and self.partner.has_marketing_site: # Before save, get from database the existing data if exists existing_program = None if self.id: existing_program = Program.objects.get(id=self.id) # Pass existing data to the publisher so it can decide whether we should publish publisher = MarketingSitePublisher(existing_program) with transaction.atomic(): super(Program, self).save(*args, **kwargs) # Once save complete, we need to update the marketing site # So the marketing page for this program is automatically updated publisher.publish_program(self) else: super(Program, self).save(*args, **kwargs) self.reindex_courses()
def save(self, *args, **kwargs): if waffle.switch_is_active('publish_program_to_marketing_site') and self.partner.has_marketing_site: # Before save, get from database the existing data if exists existing_program = None if self.id: existing_program = Program.objects.get(id=self.id) # Pass existing data to the publisher so it can decide whether we should publish publisher = MarketingSitePublisher(existing_program) with transaction.atomic(): super(Program, self).save(*args, **kwargs) # Once save complete, we need to update the marketing site # So the marketing page for this program is automatically updated publisher.publish_program(self) else: super(Program, self).save(*args, **kwargs) self.reindex_courses()
def test_publish_xseries_program(self): self.program.type = ProgramType.objects.get(name='XSeries') publisher = MarketingSitePublisher() publisher.publish_program(self.program) self.assert_responses_call_count(0)
def test_publish_unmodified_program(self): self.mock_api_client(200) publisher = MarketingSitePublisher(self.program) publisher.publish_program(self.program) self.assert_responses_call_count(0)
def test_publish_unmodified_program(self): self.mock_api_client(200) publisher = MarketingSitePublisher(self.program) publisher.publish_program(self.program) self.assert_responses_call_count(0)
def test_publish_xseries_program(self): self.program.type = ProgramType.objects.get(name='XSeries') publisher = MarketingSitePublisher() publisher.publish_program(self.program) self.assert_responses_call_count(0)