cms.utils.urlutils: 29 total statements, 0.0% covered

Generated: Wed 2013-03-13 10:33 CET

Source file: /media/Envs/Envs/filer-gallery/lib/python2.7/site-packages/cms/utils/urlutils.py

Stats: 0 executed, 26 missed, 3 excluded, 32 ignored

  1. # -*- coding: utf-8 -*-
  2. from django.conf import settings
  3. from urlparse import urlparse
  4. import re
  5. # checks validity of absolute / relative url
  6. any_path_re = re.compile('^/?[a-zA-Z0-9_.-]+(/[a-zA-Z0-9_.-]+)*/?$')
  7. def levelize_path(path):
  8. """Splits given path to list of paths removing latest level in each step.
  9. >>> path = '/application/item/new'
  10. >>> levelize_path(path)
  11. ['/application/item/new', '/application/item', '/application']
  12. """
  13. parts = path.rstrip("/").split("/")
  14. paths = []
  15. for i in range(len(parts), 0, -1):
  16. sub_path = ('/').join(parts[:i])
  17. if sub_path:
  18. paths.append(sub_path)
  19. return paths
  20. def urljoin(*segments):
  21. """Joins url segments together and appends trailing slash if required.
  22. >>> urljoin('a', 'b', 'c')
  23. u'a/b/c/'
  24. >>> urljoin('a', '//b//', 'c')
  25. u'a/b/c/'
  26. >>> urljoin('/a', '/b/', '/c/')
  27. u'/a/b/c/'
  28. >>> urljoin('/a', '')
  29. u'/a/'
  30. """
  31. cleaned_segments = map(lambda segment: unicode(segment).strip("/"), segments)
  32. nonempty_segments = filter(lambda segment: segment > "", cleaned_segments)
  33. url = ("/").join(nonempty_segments)
  34. if segments[0].startswith("/") and not url.startswith("/"):
  35. url = "/" + url
  36. if settings.APPEND_SLASH and not url.endswith("/"):
  37. url += "/"
  38. return url
  39. def is_media_request(request):
  40. """
  41. Check if a request is a media request.
  42. """
  43. parsed_media_url = urlparse(settings.MEDIA_URL)
  44. if request.path.startswith(parsed_media_url.path):
  45. if parsed_media_url.netloc:
  46. if request.get_host() == parsed_media_url.netloc:
  47. return True
  48. else:
  49. return True
  50. return False