Randomize a parameter value based on occurrences of alphanumeric characters >>> random.seed(0) >>> randomizeParameterValue('foobar') 'fupgpy' >>> randomizeParameterValue('17') '36'
(value)
| 4503 | return retVal |
| 4504 | |
| 4505 | def randomizeParameterValue(value): |
| 4506 | """ |
| 4507 | Randomize a parameter value based on occurrences of alphanumeric characters |
| 4508 | |
| 4509 | >>> random.seed(0) |
| 4510 | >>> randomizeParameterValue('foobar') |
| 4511 | 'fupgpy' |
| 4512 | >>> randomizeParameterValue('17') |
| 4513 | '36' |
| 4514 | """ |
| 4515 | |
| 4516 | retVal = value |
| 4517 | |
| 4518 | value = re.sub(r"%[0-9a-fA-F]{2}", "", value) |
| 4519 | |
| 4520 | for match in re.finditer(r"[A-Z]+", value): |
| 4521 | while True: |
| 4522 | original = match.group() |
| 4523 | candidate = randomStr(len(match.group())).upper() |
| 4524 | if original != candidate: |
| 4525 | break |
| 4526 | |
| 4527 | retVal = retVal.replace(original, candidate) |
| 4528 | |
| 4529 | for match in re.finditer(r"[a-z]+", value): |
| 4530 | while True: |
| 4531 | original = match.group() |
| 4532 | candidate = randomStr(len(match.group())).lower() |
| 4533 | if original != candidate: |
| 4534 | break |
| 4535 | |
| 4536 | retVal = retVal.replace(original, candidate) |
| 4537 | |
| 4538 | for match in re.finditer(r"[0-9]+", value): |
| 4539 | while True: |
| 4540 | original = match.group() |
| 4541 | candidate = str(randomInt(len(match.group()))) |
| 4542 | if original != candidate: |
| 4543 | break |
| 4544 | |
| 4545 | retVal = retVal.replace(original, candidate, 1) |
| 4546 | |
| 4547 | if re.match(r"\A[^@]+@.+\.[a-z]+\Z", value): |
| 4548 | parts = retVal.split('.') |
| 4549 | parts[-1] = random.sample(RANDOMIZATION_TLDS, 1)[0] |
| 4550 | retVal = '.'.join(parts) |
| 4551 | |
| 4552 | if not retVal: |
| 4553 | retVal = randomStr(lowercase=True) |
| 4554 | |
| 4555 | return retVal |
| 4556 | |
| 4557 | @cachedmethod |
| 4558 | def asciifyUrl(url, forceQuote=False): |
no test coverage detected
searching dependent graphs…