mirror of
https://github.com/ansible/awx.git
synced 2026-05-17 22:37:41 -02:30
Merge pull request #379 from AlanCoding/awx160
Enforce max line length of 160 characters
This commit is contained in:
@@ -2118,7 +2118,9 @@ class HostInsights(GenericAPIView):
|
|||||||
if res.status_code == 401:
|
if res.status_code == 401:
|
||||||
return (dict(error=_('Unauthorized access. Please check your Insights Credential username and password.')), status.HTTP_502_BAD_GATEWAY)
|
return (dict(error=_('Unauthorized access. Please check your Insights Credential username and password.')), status.HTTP_502_BAD_GATEWAY)
|
||||||
elif res.status_code != 200:
|
elif res.status_code != 200:
|
||||||
return (dict(error=_('Failed to gather reports and maintenance plans from Insights API at URL {}. Server responded with {} status code and message {}').format(url, res.status_code, res.content)), status.HTTP_502_BAD_GATEWAY)
|
return (dict(error=_(
|
||||||
|
'Failed to gather reports and maintenance plans from Insights API at URL {}. Server responded with {} status code and message {}'
|
||||||
|
).format(url, res.status_code, res.content)), status.HTTP_502_BAD_GATEWAY)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
filtered_insights_content = filter_insights_api_response(res.json())
|
filtered_insights_content = filter_insights_api_response(res.json())
|
||||||
|
|||||||
@@ -268,7 +268,8 @@ register(
|
|||||||
field_class=fields.IntegerField,
|
field_class=fields.IntegerField,
|
||||||
min_value=0,
|
min_value=0,
|
||||||
label=_('Job Event Standard Output Maximum Display Size'),
|
label=_('Job Event Standard Output Maximum Display Size'),
|
||||||
help_text=_(u'Maximum Size of Standard Output in bytes to display for a single job or ad hoc command event. `stdout` will end with `\u2026` when truncated.'),
|
help_text=_(
|
||||||
|
u'Maximum Size of Standard Output in bytes to display for a single job or ad hoc command event. `stdout` will end with `\u2026` when truncated.'),
|
||||||
category=_('Jobs'),
|
category=_('Jobs'),
|
||||||
category_slug='jobs',
|
category_slug='jobs',
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -7,5 +7,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
|
|
||||||
CLOUD_PROVIDERS = ('azure_rm', 'ec2', 'gce', 'vmware', 'openstack', 'satellite6', 'cloudforms')
|
CLOUD_PROVIDERS = ('azure_rm', 'ec2', 'gce', 'vmware', 'openstack', 'satellite6', 'cloudforms')
|
||||||
SCHEDULEABLE_PROVIDERS = CLOUD_PROVIDERS + ('custom', 'scm',)
|
SCHEDULEABLE_PROVIDERS = CLOUD_PROVIDERS + ('custom', 'scm',)
|
||||||
PRIVILEGE_ESCALATION_METHODS = [ ('sudo', _('Sudo')), ('su', _('Su')), ('pbrun', _('Pbrun')), ('pfexec', _('Pfexec')), ('dzdo', _('DZDO')), ('pmrun', _('Pmrun')), ('runas', _('Runas'))]
|
PRIVILEGE_ESCALATION_METHODS = [
|
||||||
|
('sudo', _('Sudo')), ('su', _('Su')), ('pbrun', _('Pbrun')), ('pfexec', _('Pfexec')),
|
||||||
|
('dzdo', _('DZDO')), ('pmrun', _('Pmrun')), ('runas', _('Runas'))]
|
||||||
ANSI_SGR_PATTERN = re.compile(r'\x1b\[[0-9;]*m')
|
ANSI_SGR_PATTERN = re.compile(r'\x1b\[[0-9;]*m')
|
||||||
|
|||||||
@@ -81,7 +81,8 @@ def ws_receive(message):
|
|||||||
if access_cls is not None:
|
if access_cls is not None:
|
||||||
user_access = access_cls(user)
|
user_access = access_cls(user)
|
||||||
if not user_access.get_queryset().filter(pk=oid).exists():
|
if not user_access.get_queryset().filter(pk=oid).exists():
|
||||||
message.reply_channel.send({"text": json.dumps({"error": "access denied to channel {0} for resource id {1}".format(group_name, oid)})})
|
message.reply_channel.send({"text": json.dumps(
|
||||||
|
{"error": "access denied to channel {0} for resource id {1}".format(group_name, oid)})})
|
||||||
continue
|
continue
|
||||||
current_groups.add(name)
|
current_groups.add(name)
|
||||||
Group(name).add(message.reply_channel)
|
Group(name).add(message.reply_channel)
|
||||||
|
|||||||
@@ -160,7 +160,9 @@ class JobOptions(BaseModel):
|
|||||||
)
|
)
|
||||||
use_fact_cache = models.BooleanField(
|
use_fact_cache = models.BooleanField(
|
||||||
default=False,
|
default=False,
|
||||||
help_text=_("If enabled, Tower will act as an Ansible Fact Cache Plugin; persisting facts at the end of a playbook run to the database and caching facts for use by Ansible."),
|
help_text=_(
|
||||||
|
"If enabled, Tower will act as an Ansible Fact Cache Plugin; persisting "
|
||||||
|
"facts at the end of a playbook run to the database and caching facts for use by Ansible."),
|
||||||
)
|
)
|
||||||
|
|
||||||
extra_vars_dict = VarsDictProperty('extra_vars', True)
|
extra_vars_dict = VarsDictProperty('extra_vars', True)
|
||||||
@@ -439,14 +441,20 @@ class JobTemplate(UnifiedJobTemplate, JobOptions, SurveyJobTemplateMixin, Resour
|
|||||||
# TODO: Currently there is no org fk on project so this will need to be added once that is
|
# TODO: Currently there is no org fk on project so this will need to be added once that is
|
||||||
# available after the rbac pr
|
# available after the rbac pr
|
||||||
base_notification_templates = NotificationTemplate.objects
|
base_notification_templates = NotificationTemplate.objects
|
||||||
error_notification_templates = list(base_notification_templates.filter(unifiedjobtemplate_notification_templates_for_errors__in=[self, self.project]))
|
error_notification_templates = list(base_notification_templates.filter(
|
||||||
success_notification_templates = list(base_notification_templates.filter(unifiedjobtemplate_notification_templates_for_success__in=[self, self.project]))
|
unifiedjobtemplate_notification_templates_for_errors__in=[self, self.project]))
|
||||||
any_notification_templates = list(base_notification_templates.filter(unifiedjobtemplate_notification_templates_for_any__in=[self, self.project]))
|
success_notification_templates = list(base_notification_templates.filter(
|
||||||
|
unifiedjobtemplate_notification_templates_for_success__in=[self, self.project]))
|
||||||
|
any_notification_templates = list(base_notification_templates.filter(
|
||||||
|
unifiedjobtemplate_notification_templates_for_any__in=[self, self.project]))
|
||||||
# Get Organization NotificationTemplates
|
# Get Organization NotificationTemplates
|
||||||
if self.project is not None and self.project.organization is not None:
|
if self.project is not None and self.project.organization is not None:
|
||||||
error_notification_templates = set(error_notification_templates + list(base_notification_templates.filter(organization_notification_templates_for_errors=self.project.organization)))
|
error_notification_templates = set(error_notification_templates + list(base_notification_templates.filter(
|
||||||
success_notification_templates = set(success_notification_templates + list(base_notification_templates.filter(organization_notification_templates_for_success=self.project.organization)))
|
organization_notification_templates_for_errors=self.project.organization)))
|
||||||
any_notification_templates = set(any_notification_templates + list(base_notification_templates.filter(organization_notification_templates_for_any=self.project.organization)))
|
success_notification_templates = set(success_notification_templates + list(base_notification_templates.filter(
|
||||||
|
organization_notification_templates_for_success=self.project.organization)))
|
||||||
|
any_notification_templates = set(any_notification_templates + list(base_notification_templates.filter(
|
||||||
|
organization_notification_templates_for_any=self.project.organization)))
|
||||||
return dict(error=list(error_notification_templates), success=list(success_notification_templates), any=list(any_notification_templates))
|
return dict(error=list(error_notification_templates), success=list(success_notification_templates), any=list(any_notification_templates))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ REPLACE_STR = '$encrypted$'
|
|||||||
class UriCleaner(object):
|
class UriCleaner(object):
|
||||||
REPLACE_STR = REPLACE_STR
|
REPLACE_STR = REPLACE_STR
|
||||||
# https://regex101.com/r/sV2dO2/2
|
# https://regex101.com/r/sV2dO2/2
|
||||||
SENSITIVE_URI_PATTERN = re.compile(ur'(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))', re.MULTILINE)
|
SENSITIVE_URI_PATTERN = re.compile(ur'(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))', re.MULTILINE) # NOQA
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def remove_sensitive(cleartext):
|
def remove_sensitive(cleartext):
|
||||||
|
|||||||
@@ -71,7 +71,8 @@ class TaskManager():
|
|||||||
|
|
||||||
def get_tasks(self, status_list=('pending', 'waiting', 'running')):
|
def get_tasks(self, status_list=('pending', 'waiting', 'running')):
|
||||||
jobs = [j for j in Job.objects.filter(status__in=status_list).prefetch_related('instance_group')]
|
jobs = [j for j in Job.objects.filter(status__in=status_list).prefetch_related('instance_group')]
|
||||||
inventory_updates_qs = InventoryUpdate.objects.filter(status__in=status_list).exclude(source='file').prefetch_related('inventory_source', 'instance_group')
|
inventory_updates_qs = InventoryUpdate.objects.filter(
|
||||||
|
status__in=status_list).exclude(source='file').prefetch_related('inventory_source', 'instance_group')
|
||||||
inventory_updates = [i for i in inventory_updates_qs]
|
inventory_updates = [i for i in inventory_updates_qs]
|
||||||
project_updates = [p for p in ProjectUpdate.objects.filter(status__in=status_list).prefetch_related('instance_group')]
|
project_updates = [p for p in ProjectUpdate.objects.filter(status__in=status_list).prefetch_related('instance_group')]
|
||||||
system_jobs = [s for s in SystemJob.objects.filter(status__in=status_list).prefetch_related('instance_group')]
|
system_jobs = [s for s in SystemJob.objects.filter(status__in=status_list).prefetch_related('instance_group')]
|
||||||
|
|||||||
@@ -440,7 +440,9 @@ class BaseTestMixin(MockCommonlySlowTestMixin):
|
|||||||
self.assertFalse(response.status_code == 500 and expect != 500,
|
self.assertFalse(response.status_code == 500 and expect != 500,
|
||||||
'Failed (500): %s' % force_text(response.content))
|
'Failed (500): %s' % force_text(response.content))
|
||||||
if expect is not None:
|
if expect is not None:
|
||||||
assert response.status_code == expect, u"expected status %s, got %s for url=%s as auth=%s: %s" % (expect, response.status_code, url, auth, force_text(response.content))
|
assert response.status_code == expect, u"expected status %s, got %s for url=%s as auth=%s: %s" % (
|
||||||
|
expect, response.status_code, url, auth, force_text(response.content)
|
||||||
|
)
|
||||||
if method_name == 'head':
|
if method_name == 'head':
|
||||||
self.assertFalse(response.content)
|
self.assertFalse(response.content)
|
||||||
if return_response_object:
|
if return_response_object:
|
||||||
|
|||||||
@@ -104,7 +104,8 @@ def test_content(hosts, fact_scans, get, user, fact_ansible_json, monkeypatch_js
|
|||||||
(fact_known, response) = setup_common(hosts, fact_scans, get, user)
|
(fact_known, response) = setup_common(hosts, fact_scans, get, user)
|
||||||
|
|
||||||
assert fact_known.host_id == response.data['host']
|
assert fact_known.host_id == response.data['host']
|
||||||
assert fact_ansible_json == (json.loads(response.data['facts']) if isinstance(response.data['facts'], unicode) else response.data['facts']) # TODO: Just make response.data['facts'] when we're only dealing with postgres, or if jsonfields ever fixes this bug
|
# TODO: Just make response.data['facts'] when we're only dealing with postgres, or if jsonfields ever fixes this bug
|
||||||
|
assert fact_ansible_json == (json.loads(response.data['facts']) if isinstance(response.data['facts'], unicode) else response.data['facts'])
|
||||||
assert timestamp_apiformat(fact_known.timestamp) == response.data['timestamp']
|
assert timestamp_apiformat(fact_known.timestamp) == response.data['timestamp']
|
||||||
assert fact_known.module == response.data['module']
|
assert fact_known.module == response.data['module']
|
||||||
|
|
||||||
@@ -115,7 +116,8 @@ def _test_search_by_module(hosts, fact_scans, get, user, fact_json, module_name)
|
|||||||
}
|
}
|
||||||
(fact_known, response) = setup_common(hosts, fact_scans, get, user, module_name=module_name, get_params=params)
|
(fact_known, response) = setup_common(hosts, fact_scans, get, user, module_name=module_name, get_params=params)
|
||||||
|
|
||||||
assert fact_json == (json.loads(response.data['facts']) if isinstance(response.data['facts'], unicode) else response.data['facts']) # TODO: Just make response.data['facts'] when we're only dealing with postgres, or if jsonfields ever fixes this bug
|
# TODO: Just make response.data['facts'] when we're only dealing with postgres, or if jsonfields ever fixes this bug
|
||||||
|
assert fact_json == (json.loads(response.data['facts']) if isinstance(response.data['facts'], unicode) else response.data['facts'])
|
||||||
assert timestamp_apiformat(fact_known.timestamp) == response.data['timestamp']
|
assert timestamp_apiformat(fact_known.timestamp) == response.data['timestamp']
|
||||||
assert module_name == response.data['module']
|
assert module_name == response.data['module']
|
||||||
|
|
||||||
@@ -138,7 +140,10 @@ def test_search_by_timestamp_and_module(hosts, fact_scans, get, user, fact_packa
|
|||||||
epoch = timezone.now()
|
epoch = timezone.now()
|
||||||
module_name = 'packages'
|
module_name = 'packages'
|
||||||
|
|
||||||
(fact_known, response) = setup_common(hosts, fact_scans, get, user, module_name=module_name, epoch=epoch, get_params=dict(module=module_name, datetime=epoch))
|
(fact_known, response) = setup_common(
|
||||||
|
hosts, fact_scans, get, user, module_name=module_name, epoch=epoch,
|
||||||
|
get_params=dict(module=module_name, datetime=epoch)
|
||||||
|
)
|
||||||
|
|
||||||
assert fact_known.id == response.data['id']
|
assert fact_known.id == response.data['id']
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -286,7 +286,10 @@ class InventoryTest(BaseTest):
|
|||||||
got = self.get(inventory_scripts, expect=200, auth=self.get_super_credentials())
|
got = self.get(inventory_scripts, expect=200, auth=self.get_super_credentials())
|
||||||
self.assertEquals(got['count'], 1)
|
self.assertEquals(got['count'], 1)
|
||||||
|
|
||||||
new_failed_script = dict(name="Should not fail", description="This test should not fail", script=TEST_SIMPLE_INVENTORY_SCRIPT, organization=self.organizations[0].id)
|
new_failed_script = dict(
|
||||||
|
name="Should not fail", description="This test should not fail",
|
||||||
|
script=TEST_SIMPLE_INVENTORY_SCRIPT, organization=self.organizations[0].id
|
||||||
|
)
|
||||||
self.post(inventory_scripts, data=new_failed_script, expect=201, auth=self.get_normal_credentials())
|
self.post(inventory_scripts, data=new_failed_script, expect=201, auth=self.get_normal_credentials())
|
||||||
|
|
||||||
failed_no_shebang = dict(name="ShouldFail", descript="This test should fail", script=TEST_SIMPLE_INVENTORY_SCRIPT_WITHOUT_HASHBANG,
|
failed_no_shebang = dict(name="ShouldFail", descript="This test should fail", script=TEST_SIMPLE_INVENTORY_SCRIPT_WITHOUT_HASHBANG,
|
||||||
|
|||||||
@@ -107,7 +107,8 @@ TEST_SINGLE_PASSWORDS = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
'description': 'Many instances, also with newline',
|
'description': 'Many instances, also with newline',
|
||||||
'text': 'I think %s is very very fast. If I ran %s for 4 hours how many hours would I run?.\nTrick question. %s for 4 hours would result in running for 4 hours' % (PASSWORD, PASSWORD, PASSWORD),
|
'text': 'I think %s is very very fast. If I ran %s for 4 hours how many hours would I '
|
||||||
|
'run?.\nTrick question. %s for 4 hours would result in running for 4 hours' % (PASSWORD, PASSWORD, PASSWORD),
|
||||||
'passwords': [PASSWORD],
|
'passwords': [PASSWORD],
|
||||||
'occurances': 3,
|
'occurances': 3,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -522,55 +522,145 @@ class ProjectUpdatesTest(BaseTransactionTest):
|
|||||||
|
|
||||||
# git: https://www.kernel.org/pub/software/scm/git/docs/git-clone.html#URLS
|
# git: https://www.kernel.org/pub/software/scm/git/docs/git-clone.html#URLS
|
||||||
# - ssh://[user@]host.xz[:port]/path/to/repo.git/
|
# - ssh://[user@]host.xz[:port]/path/to/repo.git/
|
||||||
('git', 'ssh://host.xz/path/to/repo.git/', None, 'ssh://testuser@host.xz/path/to/repo.git/', 'ssh://testuser:testpass@host.xz/path/to/repo.git/'),
|
(
|
||||||
('git', 'ssh://host.xz:1022/path/to/repo.git', None, 'ssh://testuser@host.xz:1022/path/to/repo.git', 'ssh://testuser:testpass@host.xz:1022/path/to/repo.git'),
|
'git', 'ssh://host.xz/path/to/repo.git/', None,
|
||||||
('git', 'ssh://user@host.xz/path/to/repo.git/', None, 'ssh://testuser@host.xz/path/to/repo.git/', 'ssh://testuser:testpass@host.xz/path/to/repo.git/'),
|
'ssh://testuser@host.xz/path/to/repo.git/',
|
||||||
('git', 'ssh://user@host.xz:1022/path/to/repo.git', None, 'ssh://testuser@host.xz:1022/path/to/repo.git', 'ssh://testuser:testpass@host.xz:1022/path/to/repo.git'),
|
'ssh://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
('git', 'ssh://user:pass@host.xz/path/to/repo.git/', None, 'ssh://testuser:pass@host.xz/path/to/repo.git/', 'ssh://testuser:testpass@host.xz/path/to/repo.git/'),
|
(
|
||||||
('git', 'ssh://user:pass@host.xz:1022/path/to/repo.git', None, 'ssh://testuser:pass@host.xz:1022/path/to/repo.git', 'ssh://testuser:testpass@host.xz:1022/path/to/repo.git'),
|
'git', 'ssh://host.xz:1022/path/to/repo.git', None,
|
||||||
|
'ssh://testuser@host.xz:1022/path/to/repo.git',
|
||||||
|
'ssh://testuser:testpass@host.xz:1022/path/to/repo.git'),
|
||||||
|
(
|
||||||
|
'git', 'ssh://user@host.xz/path/to/repo.git/', None,
|
||||||
|
'ssh://testuser@host.xz/path/to/repo.git/',
|
||||||
|
'ssh://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'ssh://user@host.xz:1022/path/to/repo.git', None,
|
||||||
|
'ssh://testuser@host.xz:1022/path/to/repo.git', 'ssh://testuser:testpass@host.xz:1022/path/to/repo.git'),
|
||||||
|
(
|
||||||
|
'git', 'ssh://user:pass@host.xz/path/to/repo.git/', None,
|
||||||
|
'ssh://testuser:pass@host.xz/path/to/repo.git/', 'ssh://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'ssh://user:pass@host.xz:1022/path/to/repo.git', None,
|
||||||
|
'ssh://testuser:pass@host.xz:1022/path/to/repo.git', 'ssh://testuser:testpass@host.xz:1022/path/to/repo.git'),
|
||||||
# - git://host.xz[:port]/path/to/repo.git/ (doesn't really support authentication)
|
# - git://host.xz[:port]/path/to/repo.git/ (doesn't really support authentication)
|
||||||
('git', 'git://host.xz/path/to/repo.git/', None, 'git://testuser@host.xz/path/to/repo.git/', 'git://testuser:testpass@host.xz/path/to/repo.git/'),
|
(
|
||||||
('git', 'git://host.xz:9418/path/to/repo.git', None, 'git://testuser@host.xz:9418/path/to/repo.git', 'git://testuser:testpass@host.xz:9418/path/to/repo.git'),
|
'git', 'git://host.xz/path/to/repo.git/', None,
|
||||||
('git', 'git://user@host.xz/path/to/repo.git/', None, 'git://testuser@host.xz/path/to/repo.git/', 'git://testuser:testpass@host.xz/path/to/repo.git/'),
|
'git://testuser@host.xz/path/to/repo.git/', 'git://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
('git', 'git://user@host.xz:9418/path/to/repo.git', None, 'git://testuser@host.xz:9418/path/to/repo.git', 'git://testuser:testpass@host.xz:9418/path/to/repo.git'),
|
(
|
||||||
|
'git', 'git://host.xz:9418/path/to/repo.git', None,
|
||||||
|
'git://testuser@host.xz:9418/path/to/repo.git', 'git://testuser:testpass@host.xz:9418/path/to/repo.git'),
|
||||||
|
(
|
||||||
|
'git', 'git://user@host.xz/path/to/repo.git/', None,
|
||||||
|
'git://testuser@host.xz/path/to/repo.git/', 'git://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'git://user@host.xz:9418/path/to/repo.git', None,
|
||||||
|
'git://testuser@host.xz:9418/path/to/repo.git', 'git://testuser:testpass@host.xz:9418/path/to/repo.git'),
|
||||||
# - http[s]://host.xz[:port]/path/to/repo.git/
|
# - http[s]://host.xz[:port]/path/to/repo.git/
|
||||||
('git', 'http://host.xz/path/to/repo.git/', None, 'http://testuser@host.xz/path/to/repo.git/', 'http://testuser:testpass@host.xz/path/to/repo.git/'),
|
(
|
||||||
('git', 'http://host.xz:8080/path/to/repo.git', None, 'http://testuser@host.xz:8080/path/to/repo.git', 'http://testuser:testpass@host.xz:8080/path/to/repo.git'),
|
'git', 'http://host.xz/path/to/repo.git/', None,
|
||||||
('git', 'http://user@host.xz/path/to/repo.git/', None, 'http://testuser@host.xz/path/to/repo.git/', 'http://testuser:testpass@host.xz/path/to/repo.git/'),
|
'http://testuser@host.xz/path/to/repo.git/', 'http://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
('git', 'http://user@host.xz:8080/path/to/repo.git', None, 'http://testuser@host.xz:8080/path/to/repo.git', 'http://testuser:testpass@host.xz:8080/path/to/repo.git'),
|
(
|
||||||
('git', 'http://user:pass@host.xz/path/to/repo.git/', None, 'http://testuser:pass@host.xz/path/to/repo.git/', 'http://testuser:testpass@host.xz/path/to/repo.git/'),
|
'git', 'http://host.xz:8080/path/to/repo.git', None,
|
||||||
('git', 'http://user:pass@host.xz:8080/path/to/repo.git', None, 'http://testuser:pass@host.xz:8080/path/to/repo.git', 'http://testuser:testpass@host.xz:8080/path/to/repo.git'),
|
'http://testuser@host.xz:8080/path/to/repo.git', 'http://testuser:testpass@host.xz:8080/path/to/repo.git'),
|
||||||
('git', 'https://host.xz/path/to/repo.git/', None, 'https://testuser@host.xz/path/to/repo.git/', 'https://testuser:testpass@host.xz/path/to/repo.git/'),
|
(
|
||||||
('git', 'https://host.xz:8443/path/to/repo.git', None, 'https://testuser@host.xz:8443/path/to/repo.git', 'https://testuser:testpass@host.xz:8443/path/to/repo.git'),
|
'git', 'http://user@host.xz/path/to/repo.git/', None,
|
||||||
('git', 'https://user@host.xz/path/to/repo.git/', None, 'https://testuser@host.xz/path/to/repo.git/', 'https://testuser:testpass@host.xz/path/to/repo.git/'),
|
'http://testuser@host.xz/path/to/repo.git/', 'http://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
('git', 'https://user@host.xz:8443/path/to/repo.git', None, 'https://testuser@host.xz:8443/path/to/repo.git', 'https://testuser:testpass@host.xz:8443/path/to/repo.git'),
|
(
|
||||||
('git', 'https://user:pass@host.xz/path/to/repo.git/', None, 'https://testuser:pass@host.xz/path/to/repo.git/', 'https://testuser:testpass@host.xz/path/to/repo.git/'),
|
'git', 'http://user@host.xz:8080/path/to/repo.git', None,
|
||||||
('git', 'https://user:pass@host.xz:8443/path/to/repo.git', None, 'https://testuser:pass@host.xz:8443/path/to/repo.git', 'https://testuser:testpass@host.xz:8443/path/to/repo.git'),
|
'http://testuser@host.xz:8080/path/to/repo.git', 'http://testuser:testpass@host.xz:8080/path/to/repo.git'),
|
||||||
|
(
|
||||||
|
'git', 'http://user:pass@host.xz/path/to/repo.git/', None,
|
||||||
|
'http://testuser:pass@host.xz/path/to/repo.git/', 'http://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'http://user:pass@host.xz:8080/path/to/repo.git', None,
|
||||||
|
'http://testuser:pass@host.xz:8080/path/to/repo.git', 'http://testuser:testpass@host.xz:8080/path/to/repo.git'),
|
||||||
|
(
|
||||||
|
'git', 'https://host.xz/path/to/repo.git/', None,
|
||||||
|
'https://testuser@host.xz/path/to/repo.git/', 'https://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'https://host.xz:8443/path/to/repo.git', None,
|
||||||
|
'https://testuser@host.xz:8443/path/to/repo.git', 'https://testuser:testpass@host.xz:8443/path/to/repo.git'),
|
||||||
|
(
|
||||||
|
'git', 'https://user@host.xz/path/to/repo.git/', None,
|
||||||
|
'https://testuser@host.xz/path/to/repo.git/', 'https://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'https://user@host.xz:8443/path/to/repo.git', None,
|
||||||
|
'https://testuser@host.xz:8443/path/to/repo.git', 'https://testuser:testpass@host.xz:8443/path/to/repo.git'),
|
||||||
|
(
|
||||||
|
'git', 'https://user:pass@host.xz/path/to/repo.git/', None,
|
||||||
|
'https://testuser:pass@host.xz/path/to/repo.git/', 'https://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'https://user:pass@host.xz:8443/path/to/repo.git', None,
|
||||||
|
'https://testuser:pass@host.xz:8443/path/to/repo.git', 'https://testuser:testpass@host.xz:8443/path/to/repo.git'),
|
||||||
# - ftp[s]://host.xz[:port]/path/to/repo.git/
|
# - ftp[s]://host.xz[:port]/path/to/repo.git/
|
||||||
('git', 'ftp://host.xz/path/to/repo.git/', None, 'ftp://testuser@host.xz/path/to/repo.git/', 'ftp://testuser:testpass@host.xz/path/to/repo.git/'),
|
(
|
||||||
('git', 'ftp://host.xz:8021/path/to/repo.git', None, 'ftp://testuser@host.xz:8021/path/to/repo.git', 'ftp://testuser:testpass@host.xz:8021/path/to/repo.git'),
|
'git', 'ftp://host.xz/path/to/repo.git/', None,
|
||||||
('git', 'ftp://user@host.xz/path/to/repo.git/', None, 'ftp://testuser@host.xz/path/to/repo.git/', 'ftp://testuser:testpass@host.xz/path/to/repo.git/'),
|
'ftp://testuser@host.xz/path/to/repo.git/', 'ftp://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
('git', 'ftp://user@host.xz:8021/path/to/repo.git', None, 'ftp://testuser@host.xz:8021/path/to/repo.git', 'ftp://testuser:testpass@host.xz:8021/path/to/repo.git'),
|
(
|
||||||
('git', 'ftp://user:pass@host.xz/path/to/repo.git/', None, 'ftp://testuser:pass@host.xz/path/to/repo.git/', 'ftp://testuser:testpass@host.xz/path/to/repo.git/'),
|
'git', 'ftp://host.xz:8021/path/to/repo.git', None,
|
||||||
('git', 'ftp://user:pass@host.xz:8021/path/to/repo.git', None, 'ftp://testuser:pass@host.xz:8021/path/to/repo.git', 'ftp://testuser:testpass@host.xz:8021/path/to/repo.git'),
|
'ftp://testuser@host.xz:8021/path/to/repo.git', 'ftp://testuser:testpass@host.xz:8021/path/to/repo.git'),
|
||||||
('git', 'ftps://host.xz/path/to/repo.git/', None, 'ftps://testuser@host.xz/path/to/repo.git/', 'ftps://testuser:testpass@host.xz/path/to/repo.git/'),
|
(
|
||||||
('git', 'ftps://host.xz:8990/path/to/repo.git', None, 'ftps://testuser@host.xz:8990/path/to/repo.git', 'ftps://testuser:testpass@host.xz:8990/path/to/repo.git'),
|
'git', 'ftp://user@host.xz/path/to/repo.git/', None,
|
||||||
('git', 'ftps://user@host.xz/path/to/repo.git/', None, 'ftps://testuser@host.xz/path/to/repo.git/', 'ftps://testuser:testpass@host.xz/path/to/repo.git/'),
|
'ftp://testuser@host.xz/path/to/repo.git/', 'ftp://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
('git', 'ftps://user@host.xz:8990/path/to/repo.git', None, 'ftps://testuser@host.xz:8990/path/to/repo.git', 'ftps://testuser:testpass@host.xz:8990/path/to/repo.git'),
|
(
|
||||||
('git', 'ftps://user:pass@host.xz/path/to/repo.git/', None, 'ftps://testuser:pass@host.xz/path/to/repo.git/', 'ftps://testuser:testpass@host.xz/path/to/repo.git/'),
|
'git', 'ftp://user@host.xz:8021/path/to/repo.git', None,
|
||||||
('git', 'ftps://user:pass@host.xz:8990/path/to/repo.git', None, 'ftps://testuser:pass@host.xz:8990/path/to/repo.git', 'ftps://testuser:testpass@host.xz:8990/path/to/repo.git'),
|
'ftp://testuser@host.xz:8021/path/to/repo.git', 'ftp://testuser:testpass@host.xz:8021/path/to/repo.git'),
|
||||||
|
(
|
||||||
|
'git', 'ftp://user:pass@host.xz/path/to/repo.git/', None,
|
||||||
|
'ftp://testuser:pass@host.xz/path/to/repo.git/', 'ftp://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'ftp://user:pass@host.xz:8021/path/to/repo.git', None,
|
||||||
|
'ftp://testuser:pass@host.xz:8021/path/to/repo.git', 'ftp://testuser:testpass@host.xz:8021/path/to/repo.git'),
|
||||||
|
(
|
||||||
|
'git', 'ftps://host.xz/path/to/repo.git/', None,
|
||||||
|
'ftps://testuser@host.xz/path/to/repo.git/', 'ftps://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'ftps://host.xz:8990/path/to/repo.git', None,
|
||||||
|
'ftps://testuser@host.xz:8990/path/to/repo.git', 'ftps://testuser:testpass@host.xz:8990/path/to/repo.git'),
|
||||||
|
(
|
||||||
|
'git', 'ftps://user@host.xz/path/to/repo.git/', None,
|
||||||
|
'ftps://testuser@host.xz/path/to/repo.git/', 'ftps://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'ftps://user@host.xz:8990/path/to/repo.git', None,
|
||||||
|
'ftps://testuser@host.xz:8990/path/to/repo.git', 'ftps://testuser:testpass@host.xz:8990/path/to/repo.git'),
|
||||||
|
(
|
||||||
|
'git', 'ftps://user:pass@host.xz/path/to/repo.git/', None,
|
||||||
|
'ftps://testuser:pass@host.xz/path/to/repo.git/', 'ftps://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'ftps://user:pass@host.xz:8990/path/to/repo.git', None,
|
||||||
|
'ftps://testuser:pass@host.xz:8990/path/to/repo.git', 'ftps://testuser:testpass@host.xz:8990/path/to/repo.git'),
|
||||||
# - rsync://host.xz/path/to/repo.git/
|
# - rsync://host.xz/path/to/repo.git/
|
||||||
('git', 'rsync://host.xz/path/to/repo.git/', ValueError, ValueError, ValueError),
|
(
|
||||||
|
'git', 'rsync://host.xz/path/to/repo.git/', ValueError, ValueError, ValueError),
|
||||||
# - [user@]host.xz:path/to/repo.git/ (SCP style)
|
# - [user@]host.xz:path/to/repo.git/ (SCP style)
|
||||||
('git', 'host.xz:path/to/repo.git/', 'git+ssh://host.xz/path/to/repo.git/', 'git+ssh://testuser@host.xz/path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz/path/to/repo.git/'),
|
(
|
||||||
('git', 'user@host.xz:path/to/repo.git/', 'git+ssh://user@host.xz/path/to/repo.git/', 'git+ssh://testuser@host.xz/path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz/path/to/repo.git/'),
|
'git', 'host.xz:path/to/repo.git/', 'git+ssh://host.xz/path/to/repo.git/',
|
||||||
('git', 'user:pass@host.xz:path/to/repo.git/', 'git+ssh://user:pass@host.xz/path/to/repo.git/', 'git+ssh://testuser:pass@host.xz/path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz/path/to/repo.git/'),
|
'git+ssh://testuser@host.xz/path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
('git', 'host.xz:~/path/to/repo.git/', 'git+ssh://host.xz/~/path/to/repo.git/', 'git+ssh://testuser@host.xz/~/path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz/~/path/to/repo.git/'),
|
(
|
||||||
('git', 'user@host.xz:~/path/to/repo.git/', 'git+ssh://user@host.xz/~/path/to/repo.git/', 'git+ssh://testuser@host.xz/~/path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz/~/path/to/repo.git/'),
|
'git', 'user@host.xz:path/to/repo.git/', 'git+ssh://user@host.xz/path/to/repo.git/',
|
||||||
('git', 'user:pass@host.xz:~/path/to/repo.git/', 'git+ssh://user:pass@host.xz/~/path/to/repo.git/', 'git+ssh://testuser:pass@host.xz/~/path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz/~/path/to/repo.git/'),
|
'git+ssh://testuser@host.xz/path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
('git', 'host.xz:/path/to/repo.git/', 'git+ssh://host.xz//path/to/repo.git/', 'git+ssh://testuser@host.xz//path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz//path/to/repo.git/'),
|
(
|
||||||
('git', 'user@host.xz:/path/to/repo.git/', 'git+ssh://user@host.xz//path/to/repo.git/', 'git+ssh://testuser@host.xz//path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz//path/to/repo.git/'),
|
'git', 'user:pass@host.xz:path/to/repo.git/', 'git+ssh://user:pass@host.xz/path/to/repo.git/',
|
||||||
('git', 'user:pass@host.xz:/path/to/repo.git/', 'git+ssh://user:pass@host.xz//path/to/repo.git/', 'git+ssh://testuser:pass@host.xz//path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz//path/to/repo.git/'),
|
'git+ssh://testuser:pass@host.xz/path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'host.xz:~/path/to/repo.git/', 'git+ssh://host.xz/~/path/to/repo.git/',
|
||||||
|
'git+ssh://testuser@host.xz/~/path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz/~/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'user@host.xz:~/path/to/repo.git/', 'git+ssh://user@host.xz/~/path/to/repo.git/',
|
||||||
|
'git+ssh://testuser@host.xz/~/path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz/~/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'user:pass@host.xz:~/path/to/repo.git/', 'git+ssh://user:pass@host.xz/~/path/to/repo.git/',
|
||||||
|
'git+ssh://testuser:pass@host.xz/~/path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz/~/path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'host.xz:/path/to/repo.git/', 'git+ssh://host.xz//path/to/repo.git/',
|
||||||
|
'git+ssh://testuser@host.xz//path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz//path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'user@host.xz:/path/to/repo.git/', 'git+ssh://user@host.xz//path/to/repo.git/',
|
||||||
|
'git+ssh://testuser@host.xz//path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz//path/to/repo.git/'),
|
||||||
|
(
|
||||||
|
'git', 'user:pass@host.xz:/path/to/repo.git/', 'git+ssh://user:pass@host.xz//path/to/repo.git/',
|
||||||
|
'git+ssh://testuser:pass@host.xz//path/to/repo.git/', 'git+ssh://testuser:testpass@host.xz//path/to/repo.git/'),
|
||||||
# - /path/to/repo.git/ (local file)
|
# - /path/to/repo.git/ (local file)
|
||||||
('git', '/path/to/repo.git', ValueError, ValueError, ValueError),
|
('git', '/path/to/repo.git', ValueError, ValueError, ValueError),
|
||||||
('git', 'path/to/repo.git', ValueError, ValueError, ValueError),
|
('git', 'path/to/repo.git', ValueError, ValueError, ValueError),
|
||||||
@@ -601,45 +691,115 @@ class ProjectUpdatesTest(BaseTransactionTest):
|
|||||||
('hg', 'file:///path/to/repo#rev', ValueError, ValueError, ValueError),
|
('hg', 'file:///path/to/repo#rev', ValueError, ValueError, ValueError),
|
||||||
('hg', 'file://localhost/path/to/repo/#rev', ValueError, ValueError, ValueError),
|
('hg', 'file://localhost/path/to/repo/#rev', ValueError, ValueError, ValueError),
|
||||||
# - http://[user[:pass]@]host[:port]/[path][#revision]
|
# - http://[user[:pass]@]host[:port]/[path][#revision]
|
||||||
('hg', 'http://host.xz/path/to/repo/', None, 'http://testuser@host.xz/path/to/repo/', 'http://testuser:testpass@host.xz/path/to/repo/'),
|
(
|
||||||
('hg', 'http://host.xz:8080/path/to/repo', None, 'http://testuser@host.xz:8080/path/to/repo', 'http://testuser:testpass@host.xz:8080/path/to/repo'),
|
'hg', 'http://host.xz/path/to/repo/', None,
|
||||||
('hg', 'http://user@host.xz/path/to/repo/', None, 'http://testuser@host.xz/path/to/repo/', 'http://testuser:testpass@host.xz/path/to/repo/'),
|
'http://testuser@host.xz/path/to/repo/', 'http://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
('hg', 'http://user@host.xz:8080/path/to/repo', None, 'http://testuser@host.xz:8080/path/to/repo', 'http://testuser:testpass@host.xz:8080/path/to/repo'),
|
(
|
||||||
('hg', 'http://user:pass@host.xz/path/to/repo/', None, 'http://testuser:pass@host.xz/path/to/repo/', 'http://testuser:testpass@host.xz/path/to/repo/'),
|
'hg', 'http://host.xz:8080/path/to/repo', None,
|
||||||
('hg', 'http://user:pass@host.xz:8080/path/to/repo', None, 'http://testuser:pass@host.xz:8080/path/to/repo', 'http://testuser:testpass@host.xz:8080/path/to/repo'),
|
'http://testuser@host.xz:8080/path/to/repo', 'http://testuser:testpass@host.xz:8080/path/to/repo'),
|
||||||
('hg', 'http://host.xz/path/to/repo/#rev', None, 'http://testuser@host.xz/path/to/repo/#rev', 'http://testuser:testpass@host.xz/path/to/repo/#rev'),
|
(
|
||||||
('hg', 'http://host.xz:8080/path/to/repo#rev', None, 'http://testuser@host.xz:8080/path/to/repo#rev', 'http://testuser:testpass@host.xz:8080/path/to/repo#rev'),
|
'hg', 'http://user@host.xz/path/to/repo/', None,
|
||||||
('hg', 'http://user@host.xz/path/to/repo/#rev', None, 'http://testuser@host.xz/path/to/repo/#rev', 'http://testuser:testpass@host.xz/path/to/repo/#rev'),
|
'http://testuser@host.xz/path/to/repo/', 'http://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
('hg', 'http://user@host.xz:8080/path/to/repo#rev', None, 'http://testuser@host.xz:8080/path/to/repo#rev', 'http://testuser:testpass@host.xz:8080/path/to/repo#rev'),
|
(
|
||||||
('hg', 'http://user:pass@host.xz/path/to/repo/#rev', None, 'http://testuser:pass@host.xz/path/to/repo/#rev', 'http://testuser:testpass@host.xz/path/to/repo/#rev'),
|
'hg', 'http://user@host.xz:8080/path/to/repo', None,
|
||||||
('hg', 'http://user:pass@host.xz:8080/path/to/repo#rev', None, 'http://testuser:pass@host.xz:8080/path/to/repo#rev', 'http://testuser:testpass@host.xz:8080/path/to/repo#rev'),
|
'http://testuser@host.xz:8080/path/to/repo', 'http://testuser:testpass@host.xz:8080/path/to/repo'),
|
||||||
|
(
|
||||||
|
'hg', 'http://user:pass@host.xz/path/to/repo/', None, 'http://testuser:pass@host.xz/path/to/repo/',
|
||||||
|
'http://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
|
(
|
||||||
|
'hg', 'http://user:pass@host.xz:8080/path/to/repo', None,
|
||||||
|
'http://testuser:pass@host.xz:8080/path/to/repo',
|
||||||
|
'http://testuser:testpass@host.xz:8080/path/to/repo'),
|
||||||
|
(
|
||||||
|
'hg', 'http://host.xz/path/to/repo/#rev', None,
|
||||||
|
'http://testuser@host.xz/path/to/repo/#rev', 'http://testuser:testpass@host.xz/path/to/repo/#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'http://host.xz:8080/path/to/repo#rev', None,
|
||||||
|
'http://testuser@host.xz:8080/path/to/repo#rev', 'http://testuser:testpass@host.xz:8080/path/to/repo#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'http://user@host.xz/path/to/repo/#rev', None,
|
||||||
|
'http://testuser@host.xz/path/to/repo/#rev', 'http://testuser:testpass@host.xz/path/to/repo/#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'http://user@host.xz:8080/path/to/repo#rev', None,
|
||||||
|
'http://testuser@host.xz:8080/path/to/repo#rev', 'http://testuser:testpass@host.xz:8080/path/to/repo#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'http://user:pass@host.xz/path/to/repo/#rev', None,
|
||||||
|
'http://testuser:pass@host.xz/path/to/repo/#rev', 'http://testuser:testpass@host.xz/path/to/repo/#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'http://user:pass@host.xz:8080/path/to/repo#rev', None,
|
||||||
|
'http://testuser:pass@host.xz:8080/path/to/repo#rev', 'http://testuser:testpass@host.xz:8080/path/to/repo#rev'),
|
||||||
# - https://[user[:pass]@]host[:port]/[path][#revision]
|
# - https://[user[:pass]@]host[:port]/[path][#revision]
|
||||||
('hg', 'https://host.xz/path/to/repo/', None, 'https://testuser@host.xz/path/to/repo/', 'https://testuser:testpass@host.xz/path/to/repo/'),
|
(
|
||||||
('hg', 'https://host.xz:8443/path/to/repo', None, 'https://testuser@host.xz:8443/path/to/repo', 'https://testuser:testpass@host.xz:8443/path/to/repo'),
|
'hg', 'https://host.xz/path/to/repo/', None,
|
||||||
('hg', 'https://user@host.xz/path/to/repo/', None, 'https://testuser@host.xz/path/to/repo/', 'https://testuser:testpass@host.xz/path/to/repo/'),
|
'https://testuser@host.xz/path/to/repo/', 'https://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
('hg', 'https://user@host.xz:8443/path/to/repo', None, 'https://testuser@host.xz:8443/path/to/repo', 'https://testuser:testpass@host.xz:8443/path/to/repo'),
|
(
|
||||||
('hg', 'https://user:pass@host.xz/path/to/repo/', None, 'https://testuser:pass@host.xz/path/to/repo/', 'https://testuser:testpass@host.xz/path/to/repo/'),
|
'hg', 'https://host.xz:8443/path/to/repo', None,
|
||||||
('hg', 'https://user:pass@host.xz:8443/path/to/repo', None, 'https://testuser:pass@host.xz:8443/path/to/repo', 'https://testuser:testpass@host.xz:8443/path/to/repo'),
|
'https://testuser@host.xz:8443/path/to/repo', 'https://testuser:testpass@host.xz:8443/path/to/repo'),
|
||||||
('hg', 'https://host.xz/path/to/repo/#rev', None, 'https://testuser@host.xz/path/to/repo/#rev', 'https://testuser:testpass@host.xz/path/to/repo/#rev'),
|
(
|
||||||
('hg', 'https://host.xz:8443/path/to/repo#rev', None, 'https://testuser@host.xz:8443/path/to/repo#rev', 'https://testuser:testpass@host.xz:8443/path/to/repo#rev'),
|
'hg', 'https://user@host.xz/path/to/repo/', None,
|
||||||
('hg', 'https://user@host.xz/path/to/repo/#rev', None, 'https://testuser@host.xz/path/to/repo/#rev', 'https://testuser:testpass@host.xz/path/to/repo/#rev'),
|
'https://testuser@host.xz/path/to/repo/', 'https://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
('hg', 'https://user@host.xz:8443/path/to/repo#rev', None, 'https://testuser@host.xz:8443/path/to/repo#rev', 'https://testuser:testpass@host.xz:8443/path/to/repo#rev'),
|
(
|
||||||
('hg', 'https://user:pass@host.xz/path/to/repo/#rev', None, 'https://testuser:pass@host.xz/path/to/repo/#rev', 'https://testuser:testpass@host.xz/path/to/repo/#rev'),
|
'hg', 'https://user@host.xz:8443/path/to/repo', None,
|
||||||
('hg', 'https://user:pass@host.xz:8443/path/to/repo#rev', None, 'https://testuser:pass@host.xz:8443/path/to/repo#rev', 'https://testuser:testpass@host.xz:8443/path/to/repo#rev'),
|
'https://testuser@host.xz:8443/path/to/repo', 'https://testuser:testpass@host.xz:8443/path/to/repo'),
|
||||||
|
(
|
||||||
|
'hg', 'https://user:pass@host.xz/path/to/repo/', None,
|
||||||
|
'https://testuser:pass@host.xz/path/to/repo/', 'https://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
|
(
|
||||||
|
'hg', 'https://user:pass@host.xz:8443/path/to/repo', None,
|
||||||
|
'https://testuser:pass@host.xz:8443/path/to/repo', 'https://testuser:testpass@host.xz:8443/path/to/repo'),
|
||||||
|
(
|
||||||
|
'hg', 'https://host.xz/path/to/repo/#rev', None,
|
||||||
|
'https://testuser@host.xz/path/to/repo/#rev', 'https://testuser:testpass@host.xz/path/to/repo/#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'https://host.xz:8443/path/to/repo#rev', None,
|
||||||
|
'https://testuser@host.xz:8443/path/to/repo#rev', 'https://testuser:testpass@host.xz:8443/path/to/repo#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'https://user@host.xz/path/to/repo/#rev', None,
|
||||||
|
'https://testuser@host.xz/path/to/repo/#rev', 'https://testuser:testpass@host.xz/path/to/repo/#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'https://user@host.xz:8443/path/to/repo#rev', None,
|
||||||
|
'https://testuser@host.xz:8443/path/to/repo#rev', 'https://testuser:testpass@host.xz:8443/path/to/repo#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'https://user:pass@host.xz/path/to/repo/#rev', None,
|
||||||
|
'https://testuser:pass@host.xz/path/to/repo/#rev', 'https://testuser:testpass@host.xz/path/to/repo/#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'https://user:pass@host.xz:8443/path/to/repo#rev', None,
|
||||||
|
'https://testuser:pass@host.xz:8443/path/to/repo#rev', 'https://testuser:testpass@host.xz:8443/path/to/repo#rev'),
|
||||||
# - ssh://[user@]host[:port]/[path][#revision]
|
# - ssh://[user@]host[:port]/[path][#revision]
|
||||||
# Password is always stripped out for hg when using SSH.
|
# Password is always stripped out for hg when using SSH.
|
||||||
('hg', 'ssh://host.xz/path/to/repo/', None, 'ssh://testuser@host.xz/path/to/repo/', 'ssh://testuser@host.xz/path/to/repo/'),
|
('hg', 'ssh://host.xz/path/to/repo/', None, 'ssh://testuser@host.xz/path/to/repo/', 'ssh://testuser@host.xz/path/to/repo/'),
|
||||||
('hg', 'ssh://host.xz:1022/path/to/repo', None, 'ssh://testuser@host.xz:1022/path/to/repo', 'ssh://testuser@host.xz:1022/path/to/repo'),
|
('hg', 'ssh://host.xz:1022/path/to/repo', None, 'ssh://testuser@host.xz:1022/path/to/repo', 'ssh://testuser@host.xz:1022/path/to/repo'),
|
||||||
('hg', 'ssh://user@host.xz/path/to/repo/', None, 'ssh://testuser@host.xz/path/to/repo/', 'ssh://testuser@host.xz/path/to/repo/'),
|
('hg', 'ssh://user@host.xz/path/to/repo/', None, 'ssh://testuser@host.xz/path/to/repo/', 'ssh://testuser@host.xz/path/to/repo/'),
|
||||||
('hg', 'ssh://user@host.xz:1022/path/to/repo', None, 'ssh://testuser@host.xz:1022/path/to/repo', 'ssh://testuser@host.xz:1022/path/to/repo'),
|
('hg', 'ssh://user@host.xz:1022/path/to/repo', None, 'ssh://testuser@host.xz:1022/path/to/repo', 'ssh://testuser@host.xz:1022/path/to/repo'),
|
||||||
('hg', 'ssh://user:pass@host.xz/path/to/repo/', 'ssh://user@host.xz/path/to/repo/', 'ssh://testuser@host.xz/path/to/repo/', 'ssh://testuser@host.xz/path/to/repo/'),
|
(
|
||||||
('hg', 'ssh://user:pass@host.xz:1022/path/to/repo', 'ssh://user@host.xz:1022/path/to/repo', 'ssh://testuser@host.xz:1022/path/to/repo', 'ssh://testuser@host.xz:1022/path/to/repo'),
|
'hg', 'ssh://user:pass@host.xz/path/to/repo/',
|
||||||
('hg', 'ssh://host.xz/path/to/repo/#rev', None, 'ssh://testuser@host.xz/path/to/repo/#rev', 'ssh://testuser@host.xz/path/to/repo/#rev'),
|
'ssh://user@host.xz/path/to/repo/',
|
||||||
('hg', 'ssh://host.xz:1022/path/to/repo#rev', None, 'ssh://testuser@host.xz:1022/path/to/repo#rev', 'ssh://testuser@host.xz:1022/path/to/repo#rev'),
|
'ssh://testuser@host.xz/path/to/repo/',
|
||||||
('hg', 'ssh://user@host.xz/path/to/repo/#rev', None, 'ssh://testuser@host.xz/path/to/repo/#rev', 'ssh://testuser@host.xz/path/to/repo/#rev'),
|
'ssh://testuser@host.xz/path/to/repo/'),
|
||||||
('hg', 'ssh://user@host.xz:1022/path/to/repo#rev', None, 'ssh://testuser@host.xz:1022/path/to/repo#rev', 'ssh://testuser@host.xz:1022/path/to/repo#rev'),
|
(
|
||||||
('hg', 'ssh://user:pass@host.xz/path/to/repo/#rev', 'ssh://user@host.xz/path/to/repo/#rev', 'ssh://testuser@host.xz/path/to/repo/#rev', 'ssh://testuser@host.xz/path/to/repo/#rev'),
|
'hg', 'ssh://user:pass@host.xz:1022/path/to/repo',
|
||||||
('hg', 'ssh://user:pass@host.xz:1022/path/to/repo#rev', 'ssh://user@host.xz:1022/path/to/repo#rev', 'ssh://testuser@host.xz:1022/path/to/repo#rev', 'ssh://testuser@host.xz:1022/path/to/repo#rev'),
|
'ssh://user@host.xz:1022/path/to/repo',
|
||||||
|
'ssh://testuser@host.xz:1022/path/to/repo',
|
||||||
|
'ssh://testuser@host.xz:1022/path/to/repo'),
|
||||||
|
(
|
||||||
|
'hg', 'ssh://host.xz/path/to/repo/#rev', None,
|
||||||
|
'ssh://testuser@host.xz/path/to/repo/#rev', 'ssh://testuser@host.xz/path/to/repo/#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'ssh://host.xz:1022/path/to/repo#rev', None,
|
||||||
|
'ssh://testuser@host.xz:1022/path/to/repo#rev', 'ssh://testuser@host.xz:1022/path/to/repo#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'ssh://user@host.xz/path/to/repo/#rev', None,
|
||||||
|
'ssh://testuser@host.xz/path/to/repo/#rev', 'ssh://testuser@host.xz/path/to/repo/#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'ssh://user@host.xz:1022/path/to/repo#rev', None,
|
||||||
|
'ssh://testuser@host.xz:1022/path/to/repo#rev', 'ssh://testuser@host.xz:1022/path/to/repo#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'ssh://user:pass@host.xz/path/to/repo/#rev',
|
||||||
|
'ssh://user@host.xz/path/to/repo/#rev',
|
||||||
|
'ssh://testuser@host.xz/path/to/repo/#rev', 'ssh://testuser@host.xz/path/to/repo/#rev'),
|
||||||
|
(
|
||||||
|
'hg', 'ssh://user:pass@host.xz:1022/path/to/repo#rev', 'ssh://user@host.xz:1022/path/to/repo#rev',
|
||||||
|
'ssh://testuser@host.xz:1022/path/to/repo#rev', 'ssh://testuser@host.xz:1022/path/to/repo#rev'),
|
||||||
# Special case for bitbucket URLs:
|
# Special case for bitbucket URLs:
|
||||||
('hg', 'ssh://hg@bitbucket.org/foo/bar', None, ValueError, ValueError),
|
('hg', 'ssh://hg@bitbucket.org/foo/bar', None, ValueError, ValueError),
|
||||||
('hg', 'ssh://hg@altssh.bitbucket.org:443/foo/bar', None, ValueError, ValueError),
|
('hg', 'ssh://hg@altssh.bitbucket.org:443/foo/bar', None, ValueError, ValueError),
|
||||||
@@ -651,33 +811,81 @@ class ProjectUpdatesTest(BaseTransactionTest):
|
|||||||
('svn', 'file:///path/to/repo', ValueError, ValueError, ValueError),
|
('svn', 'file:///path/to/repo', ValueError, ValueError, ValueError),
|
||||||
('svn', 'file://localhost/path/to/repo/', ValueError, ValueError, ValueError),
|
('svn', 'file://localhost/path/to/repo/', ValueError, ValueError, ValueError),
|
||||||
# - http:// Access via WebDAV protocol to Subversion-aware Apache server
|
# - http:// Access via WebDAV protocol to Subversion-aware Apache server
|
||||||
('svn', 'http://host.xz/path/to/repo/', None, 'http://testuser@host.xz/path/to/repo/', 'http://testuser:testpass@host.xz/path/to/repo/'),
|
(
|
||||||
('svn', 'http://host.xz:8080/path/to/repo', None, 'http://testuser@host.xz:8080/path/to/repo', 'http://testuser:testpass@host.xz:8080/path/to/repo'),
|
'svn', 'http://host.xz/path/to/repo/', None,
|
||||||
('svn', 'http://user@host.xz/path/to/repo/', None, 'http://testuser@host.xz/path/to/repo/', 'http://testuser:testpass@host.xz/path/to/repo/'),
|
'http://testuser@host.xz/path/to/repo/', 'http://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
('svn', 'http://user@host.xz:8080/path/to/repo', None, 'http://testuser@host.xz:8080/path/to/repo', 'http://testuser:testpass@host.xz:8080/path/to/repo'),
|
(
|
||||||
('svn', 'http://user:pass@host.xz/path/to/repo/', None, 'http://testuser:pass@host.xz/path/to/repo/', 'http://testuser:testpass@host.xz/path/to/repo/'),
|
'svn', 'http://host.xz:8080/path/to/repo', None,
|
||||||
('svn', 'http://user:pass@host.xz:8080/path/to/repo', None, 'http://testuser:pass@host.xz:8080/path/to/repo', 'http://testuser:testpass@host.xz:8080/path/to/repo'),
|
'http://testuser@host.xz:8080/path/to/repo', 'http://testuser:testpass@host.xz:8080/path/to/repo'),
|
||||||
|
(
|
||||||
|
'svn', 'http://user@host.xz/path/to/repo/', None,
|
||||||
|
'http://testuser@host.xz/path/to/repo/', 'http://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
|
(
|
||||||
|
'svn', 'http://user@host.xz:8080/path/to/repo', None,
|
||||||
|
'http://testuser@host.xz:8080/path/to/repo', 'http://testuser:testpass@host.xz:8080/path/to/repo'),
|
||||||
|
(
|
||||||
|
'svn', 'http://user:pass@host.xz/path/to/repo/', None,
|
||||||
|
'http://testuser:pass@host.xz/path/to/repo/', 'http://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
|
(
|
||||||
|
'svn', 'http://user:pass@host.xz:8080/path/to/repo', None,
|
||||||
|
'http://testuser:pass@host.xz:8080/path/to/repo', 'http://testuser:testpass@host.xz:8080/path/to/repo'),
|
||||||
# - https:// Same as http://, but with SSL encryption
|
# - https:// Same as http://, but with SSL encryption
|
||||||
('svn', 'https://host.xz/path/to/repo/', None, 'https://testuser@host.xz/path/to/repo/', 'https://testuser:testpass@host.xz/path/to/repo/'),
|
(
|
||||||
('svn', 'https://host.xz:8080/path/to/repo', None, 'https://testuser@host.xz:8080/path/to/repo', 'https://testuser:testpass@host.xz:8080/path/to/repo'),
|
'svn', 'https://host.xz/path/to/repo/', None,
|
||||||
('svn', 'https://user@host.xz/path/to/repo/', None, 'https://testuser@host.xz/path/to/repo/', 'https://testuser:testpass@host.xz/path/to/repo/'),
|
'https://testuser@host.xz/path/to/repo/', 'https://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
('svn', 'https://user@host.xz:8080/path/to/repo', None, 'https://testuser@host.xz:8080/path/to/repo', 'https://testuser:testpass@host.xz:8080/path/to/repo'),
|
(
|
||||||
('svn', 'https://user:pass@host.xz/path/to/repo/', None, 'https://testuser:pass@host.xz/path/to/repo/', 'https://testuser:testpass@host.xz/path/to/repo/'),
|
'svn', 'https://host.xz:8080/path/to/repo', None,
|
||||||
('svn', 'https://user:pass@host.xz:8080/path/to/repo', None, 'https://testuser:pass@host.xz:8080/path/to/repo', 'https://testuser:testpass@host.xz:8080/path/to/repo'),
|
'https://testuser@host.xz:8080/path/to/repo', 'https://testuser:testpass@host.xz:8080/path/to/repo'),
|
||||||
|
(
|
||||||
|
'svn', 'https://user@host.xz/path/to/repo/', None,
|
||||||
|
'https://testuser@host.xz/path/to/repo/', 'https://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
|
(
|
||||||
|
'svn', 'https://user@host.xz:8080/path/to/repo', None,
|
||||||
|
'https://testuser@host.xz:8080/path/to/repo', 'https://testuser:testpass@host.xz:8080/path/to/repo'),
|
||||||
|
(
|
||||||
|
'svn', 'https://user:pass@host.xz/path/to/repo/', None,
|
||||||
|
'https://testuser:pass@host.xz/path/to/repo/', 'https://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
|
(
|
||||||
|
'svn', 'https://user:pass@host.xz:8080/path/to/repo', None,
|
||||||
|
'https://testuser:pass@host.xz:8080/path/to/repo', 'https://testuser:testpass@host.xz:8080/path/to/repo'),
|
||||||
# - svn:// Access via custom protocol to an svnserve server
|
# - svn:// Access via custom protocol to an svnserve server
|
||||||
('svn', 'svn://host.xz/path/to/repo/', None, 'svn://testuser@host.xz/path/to/repo/', 'svn://testuser:testpass@host.xz/path/to/repo/'),
|
(
|
||||||
('svn', 'svn://host.xz:3690/path/to/repo', None, 'svn://testuser@host.xz:3690/path/to/repo', 'svn://testuser:testpass@host.xz:3690/path/to/repo'),
|
'svn', 'svn://host.xz/path/to/repo/', None,
|
||||||
('svn', 'svn://user@host.xz/path/to/repo/', None, 'svn://testuser@host.xz/path/to/repo/', 'svn://testuser:testpass@host.xz/path/to/repo/'),
|
'svn://testuser@host.xz/path/to/repo/', 'svn://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
('svn', 'svn://user@host.xz:3690/path/to/repo', None, 'svn://testuser@host.xz:3690/path/to/repo', 'svn://testuser:testpass@host.xz:3690/path/to/repo'),
|
(
|
||||||
('svn', 'svn://user:pass@host.xz/path/to/repo/', None, 'svn://testuser:pass@host.xz/path/to/repo/', 'svn://testuser:testpass@host.xz/path/to/repo/'),
|
'svn', 'svn://host.xz:3690/path/to/repo', None,
|
||||||
('svn', 'svn://user:pass@host.xz:3690/path/to/repo', None, 'svn://testuser:pass@host.xz:3690/path/to/repo', 'svn://testuser:testpass@host.xz:3690/path/to/repo'),
|
'svn://testuser@host.xz:3690/path/to/repo', 'svn://testuser:testpass@host.xz:3690/path/to/repo'),
|
||||||
|
(
|
||||||
|
'svn', 'svn://user@host.xz/path/to/repo/', None,
|
||||||
|
'svn://testuser@host.xz/path/to/repo/', 'svn://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
|
(
|
||||||
|
'svn', 'svn://user@host.xz:3690/path/to/repo', None,
|
||||||
|
'svn://testuser@host.xz:3690/path/to/repo', 'svn://testuser:testpass@host.xz:3690/path/to/repo'),
|
||||||
|
(
|
||||||
|
'svn', 'svn://user:pass@host.xz/path/to/repo/', None,
|
||||||
|
'svn://testuser:pass@host.xz/path/to/repo/', 'svn://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
|
(
|
||||||
|
'svn', 'svn://user:pass@host.xz:3690/path/to/repo', None,
|
||||||
|
'svn://testuser:pass@host.xz:3690/path/to/repo', 'svn://testuser:testpass@host.xz:3690/path/to/repo'),
|
||||||
# - svn+ssh:// Same as svn://, but through an SSH tunnel
|
# - svn+ssh:// Same as svn://, but through an SSH tunnel
|
||||||
('svn', 'svn+ssh://host.xz/path/to/repo/', None, 'svn+ssh://testuser@host.xz/path/to/repo/', 'svn+ssh://testuser:testpass@host.xz/path/to/repo/'),
|
(
|
||||||
('svn', 'svn+ssh://host.xz:1022/path/to/repo', None, 'svn+ssh://testuser@host.xz:1022/path/to/repo', 'svn+ssh://testuser:testpass@host.xz:1022/path/to/repo'),
|
'svn', 'svn+ssh://host.xz/path/to/repo/', None,
|
||||||
('svn', 'svn+ssh://user@host.xz/path/to/repo/', None, 'svn+ssh://testuser@host.xz/path/to/repo/', 'svn+ssh://testuser:testpass@host.xz/path/to/repo/'),
|
'svn+ssh://testuser@host.xz/path/to/repo/', 'svn+ssh://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
('svn', 'svn+ssh://user@host.xz:1022/path/to/repo', None, 'svn+ssh://testuser@host.xz:1022/path/to/repo', 'svn+ssh://testuser:testpass@host.xz:1022/path/to/repo'),
|
(
|
||||||
('svn', 'svn+ssh://user:pass@host.xz/path/to/repo/', None, 'svn+ssh://testuser:pass@host.xz/path/to/repo/', 'svn+ssh://testuser:testpass@host.xz/path/to/repo/'),
|
'svn', 'svn+ssh://host.xz:1022/path/to/repo', None,
|
||||||
('svn', 'svn+ssh://user:pass@host.xz:1022/path/to/repo', None, 'svn+ssh://testuser:pass@host.xz:1022/path/to/repo', 'svn+ssh://testuser:testpass@host.xz:1022/path/to/repo'),
|
'svn+ssh://testuser@host.xz:1022/path/to/repo', 'svn+ssh://testuser:testpass@host.xz:1022/path/to/repo'),
|
||||||
|
(
|
||||||
|
'svn', 'svn+ssh://user@host.xz/path/to/repo/', None,
|
||||||
|
'svn+ssh://testuser@host.xz/path/to/repo/', 'svn+ssh://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
|
(
|
||||||
|
'svn', 'svn+ssh://user@host.xz:1022/path/to/repo', None,
|
||||||
|
'svn+ssh://testuser@host.xz:1022/path/to/repo', 'svn+ssh://testuser:testpass@host.xz:1022/path/to/repo'),
|
||||||
|
(
|
||||||
|
'svn', 'svn+ssh://user:pass@host.xz/path/to/repo/', None,
|
||||||
|
'svn+ssh://testuser:pass@host.xz/path/to/repo/', 'svn+ssh://testuser:testpass@host.xz/path/to/repo/'),
|
||||||
|
(
|
||||||
|
'svn', 'svn+ssh://user:pass@host.xz:1022/path/to/repo', None,
|
||||||
|
'svn+ssh://testuser:pass@host.xz:1022/path/to/repo', 'svn+ssh://testuser:testpass@host.xz:1022/path/to/repo'),
|
||||||
]
|
]
|
||||||
|
|
||||||
# Some invalid URLs.
|
# Some invalid URLs.
|
||||||
|
|||||||
@@ -87,7 +87,10 @@ class TestSubListCreateAttachDetachAPIView:
|
|||||||
assert ret == mock_response_new
|
assert ret == mock_response_new
|
||||||
serializer.create.assert_called_with(mock_request, None, None)
|
serializer.create.assert_called_with(mock_request, None, None)
|
||||||
mock_parent_relationship.wife.add.assert_called_with(get_object_or_400.return_value)
|
mock_parent_relationship.wife.add.assert_called_with(get_object_or_400.return_value)
|
||||||
mock_response_new.assert_called_with(Response, create_return_value.data, status=status.HTTP_201_CREATED, headers={'Location': create_return_value['Location']})
|
mock_response_new.assert_called_with(
|
||||||
|
Response, create_return_value.data, status=status.HTTP_201_CREATED,
|
||||||
|
headers={'Location': create_return_value['Location']}
|
||||||
|
)
|
||||||
|
|
||||||
def test_attach_associate_only(self, mocker, get_object_or_400, parent_relationship_factory, mock_response_new):
|
def test_attach_associate_only(self, mocker, get_object_or_400, parent_relationship_factory, mock_response_new):
|
||||||
(serializer, mock_parent_relationship) = parent_relationship_factory(SubListCreateAttachDetachAPIView, 'wife')
|
(serializer, mock_parent_relationship) = parent_relationship_factory(SubListCreateAttachDetachAPIView, 'wife')
|
||||||
|
|||||||
@@ -156,7 +156,10 @@ class TestHostInsights():
|
|||||||
mocker.patch.object(view, '_get_insights', return_value=Response(500, 'mock 500 err msg'))
|
mocker.patch.object(view, '_get_insights', return_value=Response(500, 'mock 500 err msg'))
|
||||||
|
|
||||||
(msg, code) = view.get_insights('https://myexample.com/whocares/me/', 'ignore', 'ignore')
|
(msg, code) = view.get_insights('https://myexample.com/whocares/me/', 'ignore', 'ignore')
|
||||||
assert msg['error'] == 'Failed to gather reports and maintenance plans from Insights API at URL https://myexample.com/whocares/me/. Server responded with 500 status code and message mock 500 err msg'
|
assert msg['error'] == (
|
||||||
|
'Failed to gather reports and maintenance plans from Insights API at URL'
|
||||||
|
' https://myexample.com/whocares/me/. Server responded with 500 status code '
|
||||||
|
'and message mock 500 err msg')
|
||||||
|
|
||||||
def test_get_insights_401(self, patch_parent, mocker):
|
def test_get_insights_401(self, patch_parent, mocker):
|
||||||
view = HostInsights()
|
view = HostInsights()
|
||||||
|
|||||||
@@ -68,7 +68,11 @@ class TestSmartFilterQueryFromString():
|
|||||||
('(a=b and c=d)', Q(**{u"a": u"b"}) & Q(**{u"c": u"d"})),
|
('(a=b and c=d)', Q(**{u"a": u"b"}) & Q(**{u"c": u"d"})),
|
||||||
('a=b or c=d', Q(**{u"a": u"b"}) | Q(**{u"c": u"d"})),
|
('a=b or c=d', Q(**{u"a": u"b"}) | Q(**{u"c": u"d"})),
|
||||||
('(a=b and c=d) or (e=f)', (Q(**{u"a": u"b"}) & Q(**{u"c": u"d"})) | (Q(**{u"e": u"f"}))),
|
('(a=b and c=d) or (e=f)', (Q(**{u"a": u"b"}) & Q(**{u"c": u"d"})) | (Q(**{u"e": u"f"}))),
|
||||||
('a=b or a=d or a=e or a=z and b=h and b=i and b=j and b=k', Q(**{u"a": u"b"}) | Q(**{u"a": u"d"}) | Q(**{u"a": u"e"}) | Q(**{u"a": u"z"}) & Q(**{u"b": u"h"}) & Q(**{u"b": u"i"}) & Q(**{u"b": u"j"}) & Q(**{u"b": u"k"}))
|
(
|
||||||
|
'a=b or a=d or a=e or a=z and b=h and b=i and b=j and b=k',
|
||||||
|
Q(**{u"a": u"b"}) | Q(**{u"a": u"d"}) | Q(**{u"a": u"e"}) | Q(**{u"a": u"z"}) &
|
||||||
|
Q(**{u"b": u"h"}) & Q(**{u"b": u"i"}) & Q(**{u"b": u"j"}) & Q(**{u"b": u"k"})
|
||||||
|
)
|
||||||
])
|
])
|
||||||
def test_boolean_parenthesis(self, mock_get_host_model, filter_string, q_expected):
|
def test_boolean_parenthesis(self, mock_get_host_model, filter_string, q_expected):
|
||||||
q = SmartFilter.query_from_string(filter_string)
|
q = SmartFilter.query_from_string(filter_string)
|
||||||
@@ -86,7 +90,10 @@ class TestSmartFilterQueryFromString():
|
|||||||
('ansible_facts__a__b__c[]__d__e="foobar"', Q(**{u"ansible_facts__contains": {u"a": {u"b": {u"c": [{u"d": {u"e": u"foobar"}}]}}}})),
|
('ansible_facts__a__b__c[]__d__e="foobar"', Q(**{u"ansible_facts__contains": {u"a": {u"b": {u"c": [{u"d": {u"e": u"foobar"}}]}}}})),
|
||||||
('ansible_facts__a__b__c[]__d__e[]="foobar"', Q(**{u"ansible_facts__contains": {u"a": {u"b": {u"c": [{u"d": {u"e": [u"foobar"]}}]}}}})),
|
('ansible_facts__a__b__c[]__d__e[]="foobar"', Q(**{u"ansible_facts__contains": {u"a": {u"b": {u"c": [{u"d": {u"e": [u"foobar"]}}]}}}})),
|
||||||
('ansible_facts__a__b__c[]__d__e__f[]="foobar"', Q(**{u"ansible_facts__contains": {u"a": {u"b": {u"c": [{u"d": {u"e": {u"f": [u"foobar"]}}}]}}}})),
|
('ansible_facts__a__b__c[]__d__e__f[]="foobar"', Q(**{u"ansible_facts__contains": {u"a": {u"b": {u"c": [{u"d": {u"e": {u"f": [u"foobar"]}}}]}}}})),
|
||||||
('(ansible_facts__a__b__c[]__d__e__f[]="foobar") and (ansible_facts__a__b__c[]__d__e[]="foobar")', Q(**{ u"ansible_facts__contains": {u"a": {u"b": {u"c": [{u"d": {u"e": {u"f": [u"foobar"]}}}]}}}}) & Q(**{u"ansible_facts__contains": {u"a": {u"b": {u"c": [{u"d": {u"e": [u"foobar"]}}]}}}})),
|
(
|
||||||
|
'(ansible_facts__a__b__c[]__d__e__f[]="foobar") and (ansible_facts__a__b__c[]__d__e[]="foobar")',
|
||||||
|
Q(**{ u"ansible_facts__contains": {u"a": {u"b": {u"c": [{u"d": {u"e": {u"f": [u"foobar"]}}}]}}}}) &
|
||||||
|
Q(**{u"ansible_facts__contains": {u"a": {u"b": {u"c": [{u"d": {u"e": [u"foobar"]}}]}}}})),
|
||||||
#('"a__b\"__c"="true"', Q(**{u"a__b\"__c": "true"})),
|
#('"a__b\"__c"="true"', Q(**{u"a__b\"__c": "true"})),
|
||||||
#('a__b\"__c="true"', Q(**{u"a__b\"__c": "true"})),
|
#('a__b\"__c="true"', Q(**{u"a__b\"__c": "true"})),
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -51,7 +51,10 @@ class ActionModule(ActionBase):
|
|||||||
|
|
||||||
if res.status_code != 200:
|
if res.status_code != 200:
|
||||||
result['failed'] = True
|
result['failed'] = True
|
||||||
result['msg'] = 'Expected {} to return a status code of 200 but returned status code "{}" instead with content "{}".'.format(url, res.status_code, res.content)
|
result['msg'] = (
|
||||||
|
'Expected {} to return a status code of 200 but returned status '
|
||||||
|
'code "{}" instead with content "{}".'.format(url, res.status_code, res.content)
|
||||||
|
)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
if 'ETag' in res.headers:
|
if 'ETag' in res.headers:
|
||||||
@@ -71,7 +74,10 @@ class ActionModule(ActionBase):
|
|||||||
res = session.get(url, timeout=120)
|
res = session.get(url, timeout=120)
|
||||||
if res.status_code != 200:
|
if res.status_code != 200:
|
||||||
result['failed'] = True
|
result['failed'] = True
|
||||||
result['msg'] = 'Expected {} to return a status code of 200 but returned status code "{}" instead with content "{}".'.format(url, res.status_code, res.content)
|
result['msg'] = (
|
||||||
|
'Expected {} to return a status code of 200 but returned status '
|
||||||
|
'code "{}" instead with content "{}".'.format(url, res.status_code, res.content)
|
||||||
|
)
|
||||||
return result
|
return result
|
||||||
self.save_playbook(proj_path, item, res.content)
|
self.save_playbook(proj_path, item, res.content)
|
||||||
|
|
||||||
|
|||||||
@@ -89,7 +89,9 @@ class ServiceScanService(BaseService):
|
|||||||
# RH sysvinit
|
# RH sysvinit
|
||||||
elif chkconfig_path is not None:
|
elif chkconfig_path is not None:
|
||||||
#print '%s --status-all | grep -E "is (running|stopped)"' % service_path
|
#print '%s --status-all | grep -E "is (running|stopped)"' % service_path
|
||||||
p = re.compile('(?P<service>.*?)\s+[0-9]:(?P<rl0>on|off)\s+[0-9]:(?P<rl1>on|off)\s+[0-9]:(?P<rl2>on|off)\s+[0-9]:(?P<rl3>on|off)\s+[0-9]:(?P<rl4>on|off)\s+[0-9]:(?P<rl5>on|off)\s+[0-9]:(?P<rl6>on|off)')
|
p = re.compile(
|
||||||
|
'(?P<service>.*?)\s+[0-9]:(?P<rl0>on|off)\s+[0-9]:(?P<rl1>on|off)\s+[0-9]:(?P<rl2>on|off)\s+'
|
||||||
|
'[0-9]:(?P<rl3>on|off)\s+[0-9]:(?P<rl4>on|off)\s+[0-9]:(?P<rl5>on|off)\s+[0-9]:(?P<rl6>on|off)')
|
||||||
rc, stdout, stderr = self.module.run_command('%s' % chkconfig_path, use_unsafe_shell=True)
|
rc, stdout, stderr = self.module.run_command('%s' % chkconfig_path, use_unsafe_shell=True)
|
||||||
# Check for special cases where stdout does not fit pattern
|
# Check for special cases where stdout does not fit pattern
|
||||||
match_any = False
|
match_any = False
|
||||||
|
|||||||
@@ -9,13 +9,13 @@
|
|||||||
# E261 - At least two spaces before inline comment
|
# E261 - At least two spaces before inline comment
|
||||||
# E302 - Expected 2 blank lines found 0
|
# E302 - Expected 2 blank lines found 0
|
||||||
# E303 - Too many blank lines
|
# E303 - Too many blank lines
|
||||||
# E501 - Line too long
|
|
||||||
# W291 - Trailing whitespace
|
# W291 - Trailing whitespace
|
||||||
# W391 - Blank line at end of file
|
# W391 - Blank line at end of file
|
||||||
# W293 - Blank line contains whitespace
|
# W293 - Blank line contains whitespace
|
||||||
ignore=E201,E203,E221,E225,E231,E241,E251,E261,E265,E303,E501,W291,W391,W293
|
ignore=E201,E203,E221,E225,E231,E241,E251,E261,E265,E303,W291,W391,W293
|
||||||
exclude=.tox,venv,awx/lib/site-packages,awx/plugins/inventory/ec2.py,awx/plugins/inventory/gce.py,awx/plugins/inventory/vmware.py,awx/plugins/inventory/openstack.py,awx/ui,awx/api/urls.py,awx/main/migrations,awx/main/south_migrations,awx/main/tests/data,installer/openshift/settings.py
|
exclude=.tox,venv,awx/lib/site-packages,awx/plugins/inventory/ec2.py,awx/plugins/inventory/gce.py,awx/plugins/inventory/vmware.py,awx/plugins/inventory/openstack.py,awx/ui,awx/api/urls.py,awx/main/migrations,awx/main/south_migrations,awx/main/tests/data,installer/openshift/settings.py
|
||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
ignore=E201,E203,E221,E225,E231,E241,E251,E261,E265,E303,E501,W291,W391,W293,E731,F405
|
max-line-length=160
|
||||||
|
ignore=E201,E203,E221,E225,E231,E241,E251,E261,E265,E303,W291,W391,W293,E731,F405
|
||||||
exclude=.tox,venv,awx/lib/site-packages,awx/plugins/inventory,awx/ui,awx/api/urls.py,awx/main/migrations,awx/main/south_migrations,awx/main/tests/data,node_modules/,awx/projects/,tools/docker,awx/settings/local_*.py,installer/openshift/settings.py,build/,installer/
|
exclude=.tox,venv,awx/lib/site-packages,awx/plugins/inventory,awx/ui,awx/api/urls.py,awx/main/migrations,awx/main/south_migrations,awx/main/tests/data,node_modules/,awx/projects/,tools/docker,awx/settings/local_*.py,installer/openshift/settings.py,build/,installer/
|
||||||
|
|||||||
Reference in New Issue
Block a user