コード例 #1
0
    def setUp(self):
        super().setUp()
        self.partner = PartnerFactory()
        self.partner.marketing_site_url_root = self.api_root
        self.partner.marketing_site_api_username = self.username
        self.partner.marketing_site_api_password = self.password
        self.person = PersonFactory(partner=self.partner,
                                    given_name='Test',
                                    family_name='User')

        self.api_client = MarketingSiteAPIClient(self.username, self.password,
                                                 self.api_root)
        self.uuid = str(self.person.uuid)

        self.expected_node = {
            'resource': 'node',
            'id': '28691',
            'uuid': self.uuid,
            'uri': 'https://stage.edx.org/node/28691'
        }
        self.expected_data = {
            'type': 'person',
            'title': 'Test User',
            'field_person_slug': 'test-user',
            'status': 1
        }
コード例 #2
0
    def api_client(self):

        marketing_site_api_client = MarketingSiteAPIClient(
            self.partner.marketing_site_api_username,
            self.partner.marketing_site_api_password, self.api_url)

        return marketing_site_api_client.api_session
コード例 #3
0
    def _get_api_client(self, program):
        if not program.partner.has_marketing_site:
            return

        if not (program.partner.marketing_site_api_username and program.partner.marketing_site_api_password):
            msg = 'Marketing Site API credentials are not properly configured for Partner [{partner}]!'.format(
                partner=program.partner.short_code)
            raise ProgramPublisherException(msg)

        if program.type.name not in ['MicroMasters', 'Professional Certificate']:
            # We do not publish programs that are not MicroMasters or Professional Certificate to the Marketing Site
            return

        fields_that_trigger_publish = ['title', 'status', 'type', 'marketing_slug']
        if self.program_before and \
                all(getattr(self.program_before, key) == getattr(program, key) for key in fields_that_trigger_publish):
            # We don't need to publish to marketing site because
            # nothing we care about has changed. This would save at least 4 network calls
            return

        return MarketingSiteAPIClient(
            program.partner.marketing_site_api_username,
            program.partner.marketing_site_api_password,
            program.partner.marketing_site_url_root
        )
コード例 #4
0
    def __init__(self, partner):
        self.partner = partner

        self.client = MarketingSiteAPIClient(
            self.partner.marketing_site_api_username,
            self.partner.marketing_site_api_password,
            self.partner.marketing_site_url_root)

        self.node_api_base = urljoin(self.client.api_url, '/node.json')
コード例 #5
0
    def __init__(self, partner):
        self.partner = partner

        self.client = MarketingSiteAPIClient(
            self.partner.marketing_site_api_username,
            self.partner.marketing_site_api_password,
            self.partner.marketing_site_url_root)

        self.node_api_base = urljoin(self.client.api_url, '/node.json')
        self.alias_api_base = urljoin(self.client.api_url,
                                      '/admin/config/search/path')
        self.alias_add_url = '{}/add'.format(self.alias_api_base)
コード例 #6
0
    def setUp(self):
        super(MarketingSitePublisherTests, self).setUp()
        self.partner = PartnerFactory()
        self.partner.marketing_site_url_root = self.api_root
        self.partner.marketing_site_api_username = self.username
        self.partner.marketing_site_api_password = self.password

        self.api_client = MarketingSiteAPIClient(
            self.username,
            self.password,
            self.api_root
        )

        self.expected_node = {
            'resource': 'node', ''
            'id': '28691',
            'uuid': '18d5542f-fa80-418e-b416-455cfdeb4d4e',
            'uri': 'https://stage.edx.org/node/28691'
        }
        self.data = {
            'given_name': 'test',
            'family_name': 'user'
        }
コード例 #7
0
 def _get_api_client(self, partner):
     return MarketingSiteAPIClient(partner.marketing_site_api_username,
                                   partner.marketing_site_api_password,
                                   partner.marketing_site_url_root)