eg: running "supervisorctl status" returns non zero codes in case
certain processes its running are in failed state. get_cmd_output will
now handle such situations
chore: dropped bench.utils.get_program
* chore: added deepsource config
* chore: updated travis config
* chore: updated travis config
* chore: updated travis tests for 2.7, 3.6, 3.7, 3.8
* chore: quiet installs and sudo easy install
* fix(tests): add mariadb versioning
* fix(travis): print compat for pyhton 3
* fix: drop deprecated function usage
* chore(tests): update test_init
* tests: update branch to use version-12 for testing and use git module
* chore: quieten git command outputs on branch switch
* fix: execute 'setup production' via cli
* style: sort imports
* chore: update mariadb variables in .travis.yml
* chore: seperate jobs for easy install and production setup
* chore: use exec_cmd to log command output
* chore: pin tests to ubuntu trusty
* chore: use playbooks to install mariadb
* chore: mariadb fixes in travis
* chore: pin dist to ubuntu 18.04
* chore: setup envs according by type of test
* chore: ignore auto backup, procfile, assets build
* chore: change app frammeclient to frappe_theme
* test: try travis_wait
* tests: update and restructure tests
* tests: restructure flow of setUp, tearDown
* fix: python class inheritence fix
* chore: use local frappe repo instead of remote pull
* tests: skip assets during get-app
* fix(tests): remove reinstalling app after get_app called
* fix(tests): updated test_install_app
* fix: broken remove_app
tests: broken tests
* tests: no backup while dropping new_sites
* tests: added certain tests and py obj fixes
* tests: seperate basic and production setup tests
* tests: update travis, remove basic setup
* chore: move from function calls to exec_cmd
* chore: tests fixes
* chore: removed sudo from basic setup runs
* chore: use "sudo" for setting up sudoers
* fix: allow get_app from local folder
* fix: use gitpython to switch branch instead of exec_cmd
* chore: use test to check for file existing
* chore: restructure bench tests
* fix: fetch app repo before checking for version upgrade during
switch_branch
* fix: gitpython error in usage
* fix: boolean return value of file_exists
* fix: dont decode file contents
* fix: bench names and close open files
* chore: update bench config multiple benches
* chore: check where production fails
* chore: mention python version for init
* chore: remove node production test in CI
* fix: compatibility and permissions fixes
* chore: setup sudoers after prod setup
* fix: set remote upstream after local clone
* fix: disable production via cli
* chore(tests): fix upstream link
* chore: split tests and remove unused imports
* fix: random failings from subprocesses
async executions of muliple processes leads to various errors.
eg: get-app operation runs a "git clone" at the same time "pip
install" is run. This causes failures as the folder either doesnt
exist or isnt complete.
Proposed solution to this is to execute blocking subprocesseses
* style: command logging format via exec_cmd