diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..fde38cd3 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,41 @@ +name: Run Tests + +on: + push: + branches: [ develop ] + pull_request: + branches: [ develop ] + +jobs: + build: + runs-on: ubuntu-18.04 + strategy: + matrix: + python-version: [3.6, 3.7, 3.8] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + + - name: Install Dependencies + run: | + cp .env.example .env + python -m pip install --upgrade pip + pip install -r requirements/dev.txt + sudo apt-get install python-gdal + python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords')" + + - name: Run Flake Test + run: flake8 systers_portal + + - name: Run Tests + run: coverage run systers_portal/manage.py test --settings=systers_portal.settings.testing + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v1 + with: + name: codecov-umbrella + fail_ci_if_error: true diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 74dd2384..00000000 --- a/.travis.yml +++ /dev/null @@ -1,55 +0,0 @@ -sudo: true -language: python -dist: bionic -env: - - MOZ_HEADLESS=1 - -addons: - firefox: "55.0" - -services: - - postgresql - -python: - - "3.6" - - "3.7" - -before_install: - - wget https://github.com/mozilla/geckodriver/releases/download/v0.20.1/geckodriver-v0.20.1-linux64.tar.gz - - tar -xzvf geckodriver-v0.20.1-linux64.tar.gz - - sudo mv geckodriver /usr/local/bin -install: - - "pip install -r requirements/dev.txt" - - pip install coveralls==0.4.4 - - sudo apt-get install python-gdal - - python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords')" -before_script: - - export GOOGLE_MAPS_API_KEY=$GOOGLE_MAPS_API_KEY - - export ZOOM_API_KEY=$ZOOM_API_KEY - - export ZOOM_API_SECRET=$ZOOM_API_SECRET - - export ZOOM_USER_ID=$ZOOM_USER_ID - - export SECRET_KEY=foobarbaz -# - curl -o ipdb.tar.gz https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key=$MAXMIND_LICENSE_KEY&suffix=tar.gz -# - tar -xzf ipdb.tar.gz -C systers_portal/ - - psql -c "CREATE DATABASE systersdb;" -U postgres - - cp .env.example .env -script: - - coverage run systers_portal/manage.py test --settings=systers_portal.settings.testing - - flake8 systers_portal -notifications: - irc: - channels: "irc.freenode.org#systers-dev" - template: - - "%{repository}@%{branch}: %{message} (%{build_url})" - on_success: change - on_failure: change - use_notice: true - email: false - webhooks: - urls: - - https://webhooks.gitter.im/e/c403378d624b2391961e - on_success: change - on_failure: always - on_start: false -after_success: - coveralls --rcfile=.coveragerc diff --git a/README.md b/README.md index 8e666689..3ace3ad4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Systers Portal [![Build Status](https://travis-ci.org/systers/portal.svg?branch=master)](https://travis-ci.org/systers/portal) [![Coverage Status](https://coveralls.io/repos/github/systers/portal/badge.svg?branch=master)](https://coveralls.io/r/systers/portal?branch=master) +Systers Portal [![Build Status](https://codecov.io/gh/anitab-org/portal/branch/develop/graph/badge.svg)](https://codecov.io/gh/anitab-org/portal/) [![Coverage Status](https://coveralls.io/repos/github/systers/portal/badge.svg?branch=master)](https://coveralls.io/r/systers/portal?branch=master) ============== Systers Portal is for Systers communities to post and share information within diff --git a/systers_portal/meetup/tests/test_forms.py b/systers_portal/meetup/tests/test_forms.py index 203b502b..b4c78fb2 100644 --- a/systers_portal/meetup/tests/test_forms.py +++ b/systers_portal/meetup/tests/test_forms.py @@ -4,7 +4,6 @@ from django.utils.timezone import timedelta from cities_light.models import City, Country from django.contrib.contenttypes.models import ContentType -from django.core.exceptions import ValidationError from meetup.forms import (AddMeetupForm, EditMeetupForm, @@ -61,9 +60,9 @@ def test_request_meetup_form_with_past_date(self): date = (timezone.now() - timedelta(2)).date() time = timezone.now().time() data = {'title': 'Foo', 'slug': 'foo', 'date': date, 'time': time, - 'meetup_location': self.location, + 'meetup_location': self.location.id, 'description': "It's a test meetup."} - form = AddMeetupForm(data=data, created_by=self.systers_user, leader=self.systers_user) + form = RequestMeetupForm(data=data, created_by=self.systers_user) self.assertFalse(form.is_valid()) self.assertTrue(form.errors['date'], ["Date should not be before today's date."]) @@ -72,13 +71,12 @@ def test_request_meetup_form_with_passed_time(self): date = timezone.now().date() time = (timezone.now() - timedelta(2)).time() data = {'title': 'Foo', 'slug': 'foo', 'date': date, 'time': time, - 'meetup_location': self.location, + 'meetup_location': self.location.id, 'description': "It's a test meetup."} - form = AddMeetupForm(data=data, created_by=self.systers_user, leader=self.systers_user) + form = RequestMeetupForm(data=data, created_by=self.systers_user) self.assertFalse(form.is_valid()) self.assertTrue(form.errors['time'], ["Time should not be a time that has already passed."]) - self.assertRaises(ValidationError, form.clean_time()) class AddMeetupFormTestCase(MeetupFormTestCaseBase, TestCase): diff --git a/systers_portal/systers_portal/settings/testing.py b/systers_portal/systers_portal/settings/testing.py index 361daef3..35ab71d7 100644 --- a/systers_portal/systers_portal/settings/testing.py +++ b/systers_portal/systers_portal/settings/testing.py @@ -10,12 +10,8 @@ DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.postgresql', - 'NAME': config('DB_NAME', default='systersdb'), - 'USER': config('DB_USER'), - 'PASSWORD': config('DB_PASSWORD'), - 'HOST': config('DB_HOST', default='localhost'), - 'PORT': config('DB_PORT', default=5432, cast=int), + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }