run_tests.sh 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/bash
  2. print_message () {
  3. # Print the line with message (first argument) on the full terminal width
  4. # using second argument to fill the space.
  5. # The default color is green. To switch to red pass a third argument with any value.
  6. local terminal_width=$(tput cols)
  7. local message=$1
  8. local symbol=$2
  9. local half_way=$((($terminal_width-${#message})/2))
  10. local left_filler_len=$(printf "%${half_way}s")
  11. local right_filler_len=$(printf "%$(($terminal_width-$half_way-${#message}))s")
  12. if [[ ! -z "$3" ]]; then echo -e "\033[0;31m"; else echo -e "\033[0;32m"; fi
  13. echo -e "${left_filler_len// /$symbol}$message${right_filler_len// /$symbol}\033[0m"
  14. }
  15. if python -m flake8 --config=setup.cfg 1>&2;
  16. then
  17. print_message " flake8 завершил проверку кода, ошибок не обнаружено " "="
  18. echo $LF 1>&2
  19. if python structure_test.py
  20. then
  21. cd ya_news
  22. export DJANGO_SETTINGS_MODULE="${DJANGO_SETTINGS_MODULE:="yanews.settings"}"
  23. if pytest --tb=line 1>&2;
  24. then
  25. cd ../ya_note
  26. unset DJANGO_SETTINGS_MODULE
  27. export DJANGO_SETTINGS_MODULE="${DJANGO_SETTINGS_MODULE:="yanote.settings"}"
  28. if pytest --tb=line 1>&2;
  29. then
  30. exit 0
  31. else
  32. status=$?
  33. print_message " При запуске упали ваши тесты для проекта YaNote. Проверьте тесты этого проекта " "=" 1
  34. echo \`\`\` 1>&2
  35. exit $status
  36. fi
  37. else
  38. status=$?
  39. print_message " При запуске упали ваши тесты для проекта YaNews. Проверьте тесты этого проекта " "=" 1
  40. echo \`\`\` 1>&2
  41. exit $status
  42. fi
  43. else
  44. status=$?
  45. print_message " Убедитесь, что написанные вами тесты скопированы в указанные в ТЗ директории " "=" 1
  46. echo \`\`\` 1>&2
  47. exit $status
  48. fi
  49. else
  50. status=$?
  51. print_message " flake8 обнаружил отклонения от стандартов, приведите код в соответствие с PEP8 " "=" 1
  52. echo \`\`\` 1>&2
  53. exit $status
  54. fi