def test__disabled_component_comma_cleaning(self): package_repository = factory.make_PackageRepository(default=True, components=[]) form = PackageRepositoryForm( instance=package_repository, data={'disabled_components': ['universe,multiverse']}) request = HttpRequest() request.user = factory.make_User() endpoint = factory.pick_choice(ENDPOINT_CHOICES) repo = form.save(endpoint, request) self.assertItemsEqual(['universe', 'multiverse'], repo.disabled_components) form = PackageRepositoryForm( instance=package_repository, data={'disabled_components': ['universe, multiverse']}) repo = form.save(endpoint, request) self.assertItemsEqual(['universe', 'multiverse'], repo.disabled_components) form = PackageRepositoryForm( instance=package_repository, data={'disabled_components': ['universe']}) repo = form.save(endpoint, request) self.assertItemsEqual(['universe'], repo.disabled_components)
def test_update_custom_repository(self): """Updates a custom repository""" self.become_admin() # Creates a repository which is not 'default'. package_repository = factory.make_PackageRepository() new_values = { "url": factory.make_url(scheme="http"), "distributions": [ factory.make_name("distribution%d" % i) for i in range(3) ], "components": [factory.make_name("comp%d" % i) for i in range(4)], "arches": [ random.choice(PackageRepository.KNOWN_ARCHES), random.choice(PackageRepository.KNOWN_ARCHES), ], } response = self.client.put( self.get_package_repository_uri(package_repository), new_values ) self.assertEqual( http.client.OK, response.status_code, response.content ) package_repository = reload_object(package_repository) self.assertAttributes(package_repository, new_values)
def test_update_ubuntu_mirror_fail_with_invalid_disabled_components(self): """Test that updating an Ubuntu mirror with invalid components fails""" self.become_admin() # Create an Ubuntu mirror without components package_repository = factory.make_PackageRepository( default=True, components=[] ) new_values = { "url": factory.make_url(scheme="http"), "distributions": [ factory.make_name("distribution%d" % i) for i in range(3) ], "disabled_components": ["universes"], "arches": [ random.choice(PackageRepository.KNOWN_ARCHES), random.choice(PackageRepository.KNOWN_ARCHES), ], } response = self.client.put( self.get_package_repository_uri(package_repository), new_values ) self.assertEqual( http.client.BAD_REQUEST, response.status_code, response.content )
def test_update_custom_repository_fails_if_disabled_components(self): """Test that updating a custom repository fails if specifying 'disabled_components'. This is only needed when the repository is an Ubuntu repository""" self.become_admin() # Creates a repository which is not 'default'. package_repository = factory.make_PackageRepository() new_values = { 'url': factory.make_url(scheme='http'), 'distributions': [factory.make_name("distribution%d" % i) for i in range(3)], 'components': [factory.make_name("comp%d" % i) for i in range(4)], 'disabled_components': [factory.make_name("comp%d" % i) for i in range(4)], 'arches': [ random.choice(PackageRepository.KNOWN_ARCHES), random.choice(PackageRepository.KNOWN_ARCHES), ] } response = self.client.put( self.get_package_repository_uri(package_repository), new_values) self.assertEqual(http.client.BAD_REQUEST, response.status_code, response.content)
def test_update_ubuntu_mirror(self): """Updates a Ubuntu mirror""" self.become_admin() # Create an Ubuntu mirror without components package_repository = factory.make_PackageRepository(default=True, components=[]) new_values = { 'url': factory.make_url(scheme='http'), 'distributions': [factory.make_name("distribution%d" % i) for i in range(3)], 'disabled_pockets': ["updates", "security"], 'disabled_components': ["universe", "multiverse"], 'arches': [ random.choice(PackageRepository.KNOWN_ARCHES), random.choice(PackageRepository.KNOWN_ARCHES), ] } response = self.client.put( self.get_package_repository_uri(package_repository), new_values) self.assertEqual(http.client.OK, response.status_code, response.content) package_repository = reload_object(package_repository) self.assertAttributes(package_repository, new_values)
def create_package_repository(self, params=None): if params is None: params = {} return factory.make_PackageRepository(**params)
def test_handler_path(self): package_repository = factory.make_PackageRepository() self.assertEqual( "/MAAS/api/2.0/package-repositories/%s/" % package_repository.id, self.get_package_repository_uri(package_repository), )
def test_create_package_repository_url(self): # PackageRepository contains a URLOrPPAField. Make one with URL. url = factory.make_url(scheme="http") factory.make_PackageRepository(url=url)
def test_create_package_repository_ppa(self): # PackageRepository contains a URLOrPPAField. Make one with PPA. ppa_url = 'ppa:%s/%s' % ( factory.make_hostname(), factory.make_hostname()) factory.make_PackageRepository(url=ppa_url)