Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/django/contrib/staticfiles/utils.py: 11%

35 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2023-07-17 14:22 -0600

1import fnmatch 

2import os 

3 

4from django.conf import settings 

5from django.core.exceptions import ImproperlyConfigured 

6 

7 

8def matches_patterns(path, patterns): 

9 """ 

10 Return True or False depending on whether the ``path`` should be 

11 ignored (if it matches any pattern in ``ignore_patterns``). 

12 """ 

13 return any(fnmatch.fnmatchcase(path, pattern) for pattern in patterns) 

14 

15 

16def get_files(storage, ignore_patterns=None, location=""): 

17 """ 

18 Recursively walk the storage directories yielding the paths 

19 of all files that should be copied. 

20 """ 

21 if ignore_patterns is None: 

22 ignore_patterns = [] 

23 directories, files = storage.listdir(location) 

24 for fn in files: 

25 # Match only the basename. 

26 if matches_patterns(fn, ignore_patterns): 

27 continue 

28 if location: 

29 fn = os.path.join(location, fn) 

30 # Match the full file path. 

31 if matches_patterns(fn, ignore_patterns): 

32 continue 

33 yield fn 

34 for dir in directories: 

35 if matches_patterns(dir, ignore_patterns): 

36 continue 

37 if location: 

38 dir = os.path.join(location, dir) 

39 yield from get_files(storage, ignore_patterns, dir) 

40 

41 

42def check_settings(base_url=None): 

43 """ 

44 Check if the staticfiles settings have sane values. 

45 """ 

46 if base_url is None: 

47 base_url = settings.STATIC_URL 

48 if not base_url: 

49 raise ImproperlyConfigured( 

50 "You're using the staticfiles app " 

51 "without having set the required STATIC_URL setting." 

52 ) 

53 if settings.MEDIA_URL == base_url: 

54 raise ImproperlyConfigured( 

55 "The MEDIA_URL and STATIC_URL settings must have different values" 

56 ) 

57 if ( 

58 settings.DEBUG 

59 and settings.MEDIA_URL 

60 and settings.STATIC_URL 

61 and settings.MEDIA_URL.startswith(settings.STATIC_URL) 

62 ): 

63 raise ImproperlyConfigured( 

64 "runserver can't serve media if MEDIA_URL is within STATIC_URL." 

65 ) 

66 if (settings.MEDIA_ROOT and settings.STATIC_ROOT) and ( 

67 settings.MEDIA_ROOT == settings.STATIC_ROOT 

68 ): 

69 raise ImproperlyConfigured( 

70 "The MEDIA_ROOT and STATIC_ROOT settings must have different values" 

71 )