def test_failure(self, client):
     client.adapter.register_uri('PUT',
                                 PROD + '/api/v1/cdn_repos/11010',
                                 status_code=400,
                                 json={
                                     'status': 400,
                                     'error': 'Bad Request'
                                 })
     differences = [('my-bogus-setting', 'foo', 'bar')]
     with pytest.raises(ValueError) as err:
         edit_cdn_repo(client, 11010, differences)
     assert str(err.value) == 'Bad Request'
 def test_basic(self, client):
     client.adapter.register_uri('PUT',
                                 PROD + '/api/v1/cdn_repos/11010',
                                 status_code=200)
     # Add one new variant.
     differences = [('variants', ['8Base-RHCEPH-4.0-Tools'],
                     ['8Base-RHCEPH-4.0-Tools', '8Base-RHCEPH-4.1-Tools'])]
     edit_cdn_repo(client, 11010, differences)
     history = client.adapter.request_history
     assert len(history) == 1
     expected = {
         'cdn_repo': {
             'variant_names':
             ['8Base-RHCEPH-4.0-Tools', '8Base-RHCEPH-4.1-Tools'],
         }
     }
     assert history[0].json() == expected
 def test_errors(self, client):
     json = {
         'errors': {
             'CDN repository':
             ['has already been attached to this product version.']
         }
     }
     client.adapter.register_uri(
         'PUT',
         PROD + '/api/v1/cdn_repos/11010',
         status_code=422,
         json=json,
     )
     differences = [('variants', ['BaseOS'], ['BaseOS', 'AppStream'])]
     with pytest.raises(ValueError) as err:
         edit_cdn_repo(client, 11010, differences)
     assert 'CDN repository' in str(err.value)