language: python
sudo: false
matrix:
  include:
    - os: linux
      dist: trusty
      python: "3.6"
    - os: linux
      dist: trusty
      python: "3.5"
    - os: linux
      dist: trusty
      python: "3.4"
    - os: linux
      dist: trusty
      python: "3.3"
    - os: linux
      dist: trusty
      python: "2.7"
    - os: osx
      env: FORMULA="python"
      language: generic
    - os: osx
      env: FORMULA="python3"
      language: generic
services:
  - docker
addons:
  apt:
    packages:
      - python-commandnotfound
      - python3-commandnotfound
before_install:
  - if [[ $TRAVIS_OS_NAME == "osx" ]]; then brew update ; fi
  - if [[ $TRAVIS_OS_NAME == "osx" ]]; then if brew ls --versions $FORMULA; then brew upgrade $FORMULA || echo Python is up to date; else brew install $FORMULA; fi; fi
  - if [[ $TRAVIS_OS_NAME == "osx" ]]; then virtualenv venv -p $FORMULA; fi
  - if [[ $TRAVIS_OS_NAME == "osx" ]]; then source venv/bin/activate; fi
  - pip install -U pip
  - pip install -U coveralls
install:
  - pip install -Ur requirements.txt
  - python setup.py develop
  - rm -rf build
script:
  - flake8
  - export COVERAGE_PYTHON_VERSION=python-${TRAVIS_PYTHON_VERSION:0:1}
  - export RUN_TESTS="coverage run --source=thefuck,tests -m py.test -v --capture=sys tests"
  - if [[ $TRAVIS_PYTHON_VERSION == 3.6 && $TRAVIS_OS_NAME != "osx" ]]; then $RUN_TESTS --enable-functional; fi
  - if [[ $TRAVIS_PYTHON_VERSION != 3.6 || $TRAVIS_OS_NAME == "osx" ]]; then $RUN_TESTS; fi
after_success:
  - if [[ $TRAVIS_PYTHON_VERSION == 3.6 && $TRAVIS_OS_NAME != "osx" ]]; then coveralls; fi