def test_register_pack_invalid_ref_name_friendly_error_message(self): registrar = ResourceRegistrar(use_pack_cache=False) # Invalid ref expected_msg = ( r'Pack ref / name can only contain valid word characters .*?,' ' dashes are not allowed.') self.assertRaisesRegexp(ValidationError, expected_msg, registrar._register_pack_db, pack_name=None, pack_dir=PACK_PATH_13) try: registrar._register_pack_db(pack_name=None, pack_dir=PACK_PATH_13) except ValidationError as e: self.assertTrue( "'invalid-has-dash' does not match '^[a-z0-9_]+$'" in str(e)) else: self.fail('Exception not thrown') # Pack ref not provided and name doesn't contain valid characters expected_msg = ( r'Pack name "dummy pack 14" contains invalid characters and "ref" ' 'attribute is not available. You either need to add') self.assertRaisesRegexp(ValueError, expected_msg, registrar._register_pack_db, pack_name=None, pack_dir=PACK_PATH_14)
def test_register_pack_pack_ref(self): # Verify DB is empty pack_dbs = Pack.get_all() self.assertEqual(len(pack_dbs), 0) registrar = ResourceRegistrar(use_pack_cache=False) registrar._pack_loader.get_packs = mock.Mock() registrar._pack_loader.get_packs.return_value = { 'dummy_pack_1': PACK_PATH_1, 'dummy_pack_6': PACK_PATH_6 } packs_base_paths = content_utils.get_packs_base_paths() registrar.register_packs(base_dirs=packs_base_paths) # Ref is provided pack_db = Pack.get_by_name('dummy_pack_6') self.assertEqual(pack_db.ref, 'dummy_pack_6_ref') self.assertEqual(len(pack_db.contributors), 0) # Ref is not provided, directory name should be used pack_db = Pack.get_by_name('dummy_pack_1') self.assertEqual(pack_db.ref, 'dummy_pack_1') # "ref" is not provided, but "name" is registrar._register_pack_db(pack_name=None, pack_dir=PACK_PATH_7) pack_db = Pack.get_by_name('dummy_pack_7_name') self.assertEqual(pack_db.ref, 'dummy_pack_7_name') # "ref" is not provided and "name" contains invalid characters expected_msg = 'contains invalid characters' self.assertRaisesRegexp(ValueError, expected_msg, registrar._register_pack_db, pack_name=None, pack_dir=PACK_PATH_8)
def test_register_pack_pack_ref(self): # Verify DB is empty pack_dbs = Pack.get_all() self.assertEqual(len(pack_dbs), 0) registrar = ResourceRegistrar(use_pack_cache=False) registrar._pack_loader.get_packs = mock.Mock() registrar._pack_loader.get_packs.return_value = { 'dummy_pack_1': PACK_PATH_1, 'dummy_pack_6': PACK_PATH_6 } packs_base_paths = content_utils.get_packs_base_paths() registrar.register_packs(base_dirs=packs_base_paths) # Ref is provided pack_db = Pack.get_by_name('dummy_pack_6') self.assertEqual(pack_db.ref, 'dummy_pack_6_ref') self.assertEqual(len(pack_dbs[0].contributors), 0) # Ref is not provided, directory name should be used pack_db = Pack.get_by_name('dummy_pack_1') self.assertEqual(pack_db.ref, 'dummy_pack_1') # "ref" is not provided, but "name" is registrar._register_pack_db(pack_name=None, pack_dir=PACK_PATH_7) pack_db = Pack.get_by_name('dummy_pack_7_name') self.assertEqual(pack_db.ref, 'dummy_pack_7_name') # "ref" is not provided and "name" contains invalid characters expected_msg = 'contains invalid characters' self.assertRaisesRegexp(ValueError, expected_msg, registrar._register_pack_db, pack_name=None, pack_dir=PACK_PATH_8)
def test_register_pack_invalid_ref_name_friendly_error_message(self): registrar = ResourceRegistrar(use_pack_cache=False) # Invalid ref expected_msg = (r'Pack ref / name can only contain valid word characters .*?,' ' dashes are not allowed.') self.assertRaisesRegexp(ValidationError, expected_msg, registrar._register_pack_db, pack_name=None, pack_dir=PACK_PATH_13) try: registrar._register_pack_db(pack_name=None, pack_dir=PACK_PATH_13) except ValidationError as e: self.assertTrue("'invalid-has-dash' does not match '^[a-z0-9_]+$'" in six.text_type(e)) else: self.fail('Exception not thrown') # Pack ref not provided and name doesn't contain valid characters expected_msg = (r'Pack name "dummy pack 14" contains invalid characters and "ref" ' 'attribute is not available. You either need to add') self.assertRaisesRegexp(ValueError, expected_msg, registrar._register_pack_db, pack_name=None, pack_dir=PACK_PATH_14)