Решение на Регулярни изрази от Иван Иванов

Обратно към всички решения

Към профила на Иван Иванов

Резултати

  • 0 точки от тестове
  • 0 бонус точки
  • 0 точки общо
  • 1 успешни тест(а)
  • 38 неуспешни тест(а)

Код

class Validations():
def is_email(self):
email_parts = self.split('@')
if len(email_parts) != 2:
return False
pattern = r"^([a-z]|[A-Z]|\d)([a-z]|[A-Z]|\d|_|\+|\.|-){0,200}$"
return bool(re.search(pattern, email_parts[0])) and \
Validations.is_hostname(email_parts[1])
def is_phone(self):
pass
def is_hostname(self):
pattern = r"(([a-z]|[A-Z])([[a-z]|[A-Z]|-]{0,61}[[a-z]|[A-Z]])?\.)+"\
r"([a-z]|[A-Z]){2,3}(\.([a-z]|[A-Z]){2,3})?$"
return bool(re.search(pattern, self))
def is_ip_address(self):
pattern = r"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}"\
r"([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"
return bool(re.search(pattern, self))
def is_number(self):
pattern = r"^-?(0|[1-9]\d+)(\.0|(\.\d+[1-9]))?$"
return bool(re.search(pattern, self))
def is_integer(self):
pattern = r"^-?(0$)|([1-9]\d+)$"
return bool(re.search(pattern, self))
def is_date(self):
pattern = r"\b\d{4,4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2]\d|3[0-1])\b"
return bool(re.search(pattern, self))
def is_time(self):
pattern = r"\b([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d\b"
return bool(re.search(pattern, self))
def is_datetime(self):
if 'T' in self:
date_time = self.split('T')
else:
date_time = self.split()
return Validations.is_date(date_time[0]) and \
Validations.is_time(date_time[1])

Лог от изпълнението

EEEEEEEEEEEEEEEEFEEEE.EEEEEEEEEEEEEEEFE
======================================================================
ERROR: test_allows_email_hostname_to_be_preserved (test.PrivacyFilterTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 54, in test_allows_email_hostname_to_be_preserved
    self.assertEqual('[FILTERED]@example.com', self.filter_email_usernames('someone@example.com'))
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 9, in filter_email_usernames
    filter = solution.PrivacyFilter(text)
AttributeError: 'module' object has no attribute 'PrivacyFilter'

======================================================================
ERROR: test_allows_email_usernames_to_be_partially_preserved (test.PrivacyFilterTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 58, in test_allows_email_usernames_to_be_partially_preserved
    self.assertEqual('som[FILTERED]@example.com', self.partially_filter_email_usernames('someone@example.com'))
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 14, in partially_filter_email_usernames
    filter = solution.PrivacyFilter(text)
AttributeError: 'module' object has no attribute 'PrivacyFilter'

======================================================================
ERROR: test_does_not_brake_with_unicode (test.PrivacyFilterTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 64, in test_does_not_brake_with_unicode
    self.assertEqual('За връзка: [FILTERED]@example.com', self.partially_filter_email_usernames('За връзка: me@example.com'))
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 14, in partially_filter_email_usernames
    filter = solution.PrivacyFilter(text)
AttributeError: 'module' object has no attribute 'PrivacyFilter'

======================================================================
ERROR: test_does_not_filter_invalid_emails (test.PrivacyFilterTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 48, in test_does_not_filter_invalid_emails
    self.assertEqual(text, solution.PrivacyFilter(text).filtered())
AttributeError: 'module' object has no attribute 'PrivacyFilter'

======================================================================
ERROR: test_does_not_filter_invalid_phone_numbers (test.PrivacyFilterTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 86, in test_does_not_filter_invalid_phone_numbers
    self.assertEqual(filtered, solution.PrivacyFilter(text).filtered())
AttributeError: 'module' object has no attribute 'PrivacyFilter'

======================================================================
ERROR: test_filters_more_complex_phone_numbers (test.PrivacyFilterTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 76, in test_filters_more_complex_phone_numbers
    self.assertEqual(filtered, solution.PrivacyFilter(text).filtered())
AttributeError: 'module' object has no attribute 'PrivacyFilter'

======================================================================
ERROR: test_filters_whole_email_usernames_if_too_short (test.PrivacyFilterTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 61, in test_filters_whole_email_usernames_if_too_short
    self.assertEqual('[FILTERED]@example.com', self.partially_filter_email_usernames('me@example.com'))
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 14, in partially_filter_email_usernames
    filter = solution.PrivacyFilter(text)
AttributeError: 'module' object has no attribute 'PrivacyFilter'

======================================================================
ERROR: test_obfuscates_more_complicated_emails (test.PrivacyFilterTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 37, in test_obfuscates_more_complicated_emails
    self.assertEqual(filtered, solution.PrivacyFilter(text).filtered())
AttributeError: 'module' object has no attribute 'PrivacyFilter'

======================================================================
ERROR: test_obfuscates_simple_emails (test.PrivacyFilterTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 24, in test_obfuscates_simple_emails
    self.assertEqual('Contact: [EMAIL]', solution.PrivacyFilter('Contact: someone@example.com').filtered())
AttributeError: 'module' object has no attribute 'PrivacyFilter'

======================================================================
ERROR: test_preserves_whitespace_around_phones (test.PrivacyFilterTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 89, in test_preserves_whitespace_around_phones
    self.assertEqual(' [PHONE] or...', solution.PrivacyFilter(' +359881212-12-1 2 or...').filtered())
AttributeError: 'module' object has no attribute 'PrivacyFilter'

======================================================================
ERROR: test_separates_preserved_country_code_from_filtered_phone_with_a_space (test.PrivacyFilterTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 98, in test_separates_preserved_country_code_from_filtered_phone_with_a_space
    filter = solution.PrivacyFilter(text)
AttributeError: 'module' object has no attribute 'PrivacyFilter'

======================================================================
ERROR: test_works_with_blank_or_whitespace_strings_and_preserves_whitespace (test.PrivacyFilterTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 19, in test_works_with_blank_or_whitespace_strings_and_preserves_whitespace
    self.assertEqual('', solution.PrivacyFilter('').filtered())
AttributeError: 'module' object has no attribute 'PrivacyFilter'

======================================================================
ERROR: test_allows_huge_years_in_date_validation (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 246, in test_allows_huge_years_in_date_validation
    self.assertTrue(solution.Validations.is_date('9999-01-01'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 33, in is_date
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_allows_validation_for_emails (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 105, in test_allows_validation_for_emails
    self.assertTrue(solution.Validations.is_email('foo@bar.com'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 7, in is_email
    return bool(re.search(pattern, email_parts[0])) and \
NameError: global name 're' is not defined

======================================================================
ERROR: test_allows_zero_years_in_date_validation (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 243, in test_allows_zero_years_in_date_validation
    self.assertTrue(solution.Validations.is_date('0000-01-01'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 33, in is_date
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_can_validate_more_complex_emails (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 124, in test_can_validate_more_complex_emails
    self.assertIs(solution.Validations.is_email(email), valid)
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 7, in is_email
    return bool(re.search(pattern, email_parts[0])) and \
NameError: global name 're' is not defined

======================================================================
ERROR: test_does_not_allow_invalid_hours_minutes_or_seconds (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 270, in test_does_not_allow_invalid_hours_minutes_or_seconds
    self.assertFalse(solution.Validations.is_time('24:00:00'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 37, in is_time
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_does_not_allow_invalid_months_or_days_in_dates (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 254, in test_does_not_allow_invalid_months_or_days_in_dates
    self.assertFalse(solution.Validations.is_date('2012-13-01'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 33, in is_date
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_does_not_allow_zero_months_or_days_in_dates (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 249, in test_does_not_allow_zero_months_or_days_in_dates
    self.assertFalse(solution.Validations.is_date('1000-00-01'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 33, in is_date
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_does_not_break_on_emails_in_multiline_strings (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 127, in test_does_not_break_on_emails_in_multiline_strings
    self.assertFalse(solution.Validations.is_email("foo@bar.com\nwat?"))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 7, in is_email
    return bool(re.search(pattern, email_parts[0])) and \
NameError: global name 're' is not defined

======================================================================
ERROR: test_handles_multiline_strings_in_IP_validation_properly (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 189, in test_handles_multiline_strings_in_IP_validation_properly
    self.assertFalse(solution.Validations.is_ip_address("8.8.8.8\n"))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 21, in is_ip_address
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_handles_multiline_strings_in_hostname_validation_properly (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 179, in test_handles_multiline_strings_in_hostname_validation_properly
    self.assertFalse(solution.Validations.is_hostname("foo.com\n"))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 16, in is_hostname
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_handles_multiline_strings_in_integer_validation_properly (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 233, in test_handles_multiline_strings_in_integer_validation_properly
    self.assertFalse(solution.Validations.is_number("42\n24"))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 25, in is_number
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_handles_multiline_strings_in_numbers_validation_properly (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 215, in test_handles_multiline_strings_in_numbers_validation_properly
    self.assertFalse(solution.Validations.is_number("42\n24"))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 25, in is_number
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_handles_newlines_in_date_validation (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 259, in test_handles_newlines_in_date_validation
    self.assertFalse(solution.Validations.is_date("2012-11-19\n"))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 33, in is_date
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_handles_newlines_in_time_and_datetime_validation (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 288, in test_handles_newlines_in_time_and_datetime_validation
    self.assertFalse(solution.Validations.is_time("12:01:01\n"))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 37, in is_time
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_returns_boolean_True_or_False (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 109, in test_returns_boolean_True_or_False
    self.assertIs(solution.Validations.is_email('foo@bar.com'), True)
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 7, in is_email
    return bool(re.search(pattern, email_parts[0])) and \
NameError: global name 're' is not defined

======================================================================
ERROR: test_validates_IP_addresses (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 183, in test_validates_IP_addresses
    self.assertTrue(solution.Validations.is_ip_address('1.2.3.4'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 21, in is_ip_address
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_validates_dates (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 237, in test_validates_dates
    self.assertTrue(solution.Validations.is_date('2012-11-19'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 33, in is_date
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_validates_datetime_values (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 277, in test_validates_datetime_values
    self.assertTrue(solution.Validations.is_datetime('2012-11-19 19:00:00'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 44, in is_datetime
    return Validations.is_date(date_time[0]) and \
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 33, in is_date
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_validates_hostnames (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 166, in test_validates_hostnames
    self.assertTrue(solution.Validations.is_hostname('domain.tld'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 16, in is_hostname
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_validates_integers (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 219, in test_validates_integers
    self.assertTrue(solution.Validations.is_integer('42'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 29, in is_integer
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_validates_more_complex_integers (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 223, in test_validates_more_complex_integers
    self.assertFalse(solution.Validations.is_integer(' 42 '))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 29, in is_integer
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_validates_more_complex_numbers (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 200, in test_validates_more_complex_numbers
    self.assertFalse(solution.Validations.is_number(' 42 '))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 25, in is_number
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_validates_numbers (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 194, in test_validates_numbers
    self.assertTrue(solution.Validations.is_number('42'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 25, in is_number
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
ERROR: test_validates_times (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 263, in test_validates_times
    self.assertTrue(solution.Validations.is_time('12:00:00'))
  File "/tmp/d20140513-11348-qbfvmg/solution.py", line 37, in is_time
    return bool(re.search(pattern, self))
NameError: global name 're' is not defined

======================================================================
FAIL: test_can_validate_more_complex_phone_numbers (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 160, in test_can_validate_more_complex_phone_numbers
    self.assertIs(solution.Validations.is_phone(phone), valid)
AssertionError: None is not False

======================================================================
FAIL: test_validates_phone_numbers (test.ValidationsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "lib/language/python/runner.py", line 60, in thread
    raise it.exc_info[1]
  File "lib/language/python/runner.py", line 48, in run
    self.result = func(*args, **kwargs)
  File "/tmp/d20140513-11348-qbfvmg/test.py", line 130, in test_validates_phone_numbers
    self.assertTrue(solution.Validations.is_phone('+35929555111'))
AssertionError: None is not true

----------------------------------------------------------------------
Ran 39 tests in 0.039s

FAILED (failures=2, errors=36)

История (2 версии и 0 коментара)

Иван обнови решението на 23.04.2014 16:31 (преди около 10 години)

+class Validations():
+ def is_email(self):
+ email_parts = self.split('@')
+ if len(email_parts) != 2:
+ return False
+ pattern = r"^([a-z]|[A-Z]|\d)([a-z]|[A-Z]|\d|_|\+|\.|-){0,200}$"
+ return bool(re.search(pattern, email_parts[0])) and\
+ Validations.is_hostname(email_parts[1])
+
+ def is_phone(self):
+ pass
+
+ def is_hostname(self):
+ pattern = r"(([a-z]|[A-Z])([[a-z]|[A-Z]|-]{0,61}[[a-z]|[A-Z]])?\.)+([a-z]|[A-Z]){2,3}(\.([a-z]|[A-Z]){2,3})?$"
+ return bool(re.search(pattern, self))
+
+ def is_ip_address(self):
+ pattern = r"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"
+ return bool(re.search(pattern, self))
+
+ def is_number(self):
+ pattern = r"^-?(0|[1-9]\d+)(\.0|(\.\d+[1-9]))?$"
+ return bool(re.search(pattern, self))
+
+ def is_integer(self):
+ pattern = r"^-?(0$)|([1-9]\d+)$"
+ return bool(re.search(pattern, self))
+
+ def is_date(self):
+ pattern = r"\b\d{4,4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2]\d|3[0-1])\b"
+ return bool(re.search(pattern, self))
+
+ def is_time(self):
+ pattern = r"\b([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d\b"
+ return bool(re.search(pattern, self))
+
+ def is_datetime(self):
+ if 'T' in self:
+ date_time = self.split('T')
+ else:
+ date_time = self.split()
+ return Validations.is_date(date_time[0]) and\
+ Validations.is_time(date_time[1])

Иван обнови решението на 23.04.2014 16:44 (преди около 10 години)

class Validations():
def is_email(self):
email_parts = self.split('@')
if len(email_parts) != 2:
return False
pattern = r"^([a-z]|[A-Z]|\d)([a-z]|[A-Z]|\d|_|\+|\.|-){0,200}$"
- return bool(re.search(pattern, email_parts[0])) and\
+ return bool(re.search(pattern, email_parts[0])) and \
Validations.is_hostname(email_parts[1])
def is_phone(self):
pass
def is_hostname(self):
- pattern = r"(([a-z]|[A-Z])([[a-z]|[A-Z]|-]{0,61}[[a-z]|[A-Z]])?\.)+([a-z]|[A-Z]){2,3}(\.([a-z]|[A-Z]){2,3})?$"
+ pattern = r"(([a-z]|[A-Z])([[a-z]|[A-Z]|-]{0,61}[[a-z]|[A-Z]])?\.)+"\
+ r"([a-z]|[A-Z]){2,3}(\.([a-z]|[A-Z]){2,3})?$"
return bool(re.search(pattern, self))
def is_ip_address(self):
- pattern = r"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"
+ pattern = r"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}"\
+ r"([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"
return bool(re.search(pattern, self))
def is_number(self):
pattern = r"^-?(0|[1-9]\d+)(\.0|(\.\d+[1-9]))?$"
return bool(re.search(pattern, self))
def is_integer(self):
pattern = r"^-?(0$)|([1-9]\d+)$"
return bool(re.search(pattern, self))
def is_date(self):
pattern = r"\b\d{4,4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2]\d|3[0-1])\b"
return bool(re.search(pattern, self))
def is_time(self):
pattern = r"\b([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d\b"
return bool(re.search(pattern, self))
def is_datetime(self):
if 'T' in self:
date_time = self.split('T')
else:
date_time = self.split()
- return Validations.is_date(date_time[0]) and\
- Validations.is_time(date_time[1])
+ return Validations.is_date(date_time[0]) and \
+ Validations.is_time(date_time[1])
+