From 735ec25348a7e06937d4b1dc8396eacb3b7e310c Mon Sep 17 00:00:00 2001 From: Wes Kendall Date: Fri, 25 Sep 2015 21:28:41 +0000 Subject: [PATCH] upgraded to 1.8 --- .coveragerc | 1 - .travis.yml | 7 +- docs/release_notes.rst | 4 + issue/__init__.py | 2 +- issue/south_migrations/0001_initial.py | 169 ------------------------- issue/south_migrations/__init__.py | 0 issue/version.py | 2 +- publish.py | 5 + requirements/docs.txt | 2 +- run_tests.py | 10 -- settings.py | 5 +- setup.cfg | 2 +- setup.py | 13 +- 13 files changed, 25 insertions(+), 197 deletions(-) delete mode 100644 issue/south_migrations/0001_initial.py delete mode 100644 issue/south_migrations/__init__.py create mode 100644 publish.py diff --git a/.coveragerc b/.coveragerc index 214da02..1dd4568 100644 --- a/.coveragerc +++ b/.coveragerc @@ -2,7 +2,6 @@ branch = True omit = issue/migrations/* - issue/south_migrations/* issue/tests/* issue/version.py issue/apps.py diff --git a/.travis.yml b/.travis.yml index c579e67..269c408 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,13 +7,12 @@ addons: postgresql: '9.3' env: global: - - NOSE_NOLOGCAPTURE=1 - DB=postgres matrix: - - DJANGO=1.6.11 - - DJANGO=1.7.7 + - DJANGO=">=1.7,<1.8" + - DJANGO=">=1.8,<1.9" install: - - pip install -q coveralls coverage flake8 Django==$DJANGO + - pip install -q coveralls coverage flake8 Django$DJANGO - pip install -r requirements/docs.txt before_script: - psql -c 'CREATE DATABASE issue;' -U postgres diff --git a/docs/release_notes.rst b/docs/release_notes.rst index 849da2b..26b5374 100644 --- a/docs/release_notes.rst +++ b/docs/release_notes.rst @@ -1,6 +1,10 @@ Release Notes ============= +v1.1.0 +------ +* Django 1.8 support and removal of 1.6 support + v1.0.5 ------ * Additional tweak to the behavior of maybe_open_issue diff --git a/issue/__init__.py b/issue/__init__.py index 9c80aa8..e35e70f 100644 --- a/issue/__init__.py +++ b/issue/__init__.py @@ -2,4 +2,4 @@ from .version import __version__ from .models import Assertion, Issue, IssueManager, IssueStatus, ModelAssertion, ModelIssue, ModelIssueManager, Responder, ResponderAction -django_app_config = 'issue.apps.IssueConfig' +default_app_config = 'issue.apps.IssueConfig' diff --git a/issue/south_migrations/0001_initial.py b/issue/south_migrations/0001_initial.py deleted file mode 100644 index bd2d7d3..0000000 --- a/issue/south_migrations/0001_initial.py +++ /dev/null @@ -1,169 +0,0 @@ -# -*- coding: utf-8 -*- -from south.utils import datetime_utils as datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding model 'Issue' - db.create_table('issue_issue', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.TextField')()), - ('details', self.gf('jsonfield.fields.JSONField')(null=True, blank=True)), - ('creation_time', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), - ('status', self.gf('django.db.models.fields.IntegerField')(default=0)), - ('resolved_time', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), - )) - db.send_create_signal('issue', ['Issue']) - - # Adding model 'ModelIssue' - db.create_table('issue_modelissue', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.TextField')()), - ('details', self.gf('jsonfield.fields.JSONField')(null=True, blank=True)), - ('creation_time', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), - ('status', self.gf('django.db.models.fields.IntegerField')(default=0)), - ('resolved_time', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), - ('record_type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['contenttypes.ContentType'])), - ('record_id', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)), - )) - db.send_create_signal('issue', ['ModelIssue']) - - # Adding model 'IssueAction' - db.create_table('issue_issueaction', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('issue', self.gf('django.db.models.fields.related.ForeignKey')(related_name='executed_actions', to=orm['issue.Issue'])), - ('responder_action', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['issue.ResponderAction'])), - ('execution_time', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), - ('success', self.gf('django.db.models.fields.BooleanField')(default=True)), - ('details', self.gf('jsonfield.fields.JSONField')(null=True, blank=True)), - )) - db.send_create_signal('issue', ['IssueAction']) - - # Adding model 'Responder' - db.create_table('issue_responder', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('watch_pattern', self.gf('regex_field.fields.RegexField')(max_length=128)), - )) - db.send_create_signal('issue', ['Responder']) - - # Adding model 'ResponderAction' - db.create_table('issue_responderaction', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('responder', self.gf('django.db.models.fields.related.ForeignKey')(related_name='actions', to=orm['issue.Responder'])), - ('delay_sec', self.gf('django.db.models.fields.IntegerField')()), - ('target_function', self.gf('django.db.models.fields.TextField')()), - ('function_kwargs', self.gf('jsonfield.fields.JSONField')(default={})), - )) - db.send_create_signal('issue', ['ResponderAction']) - - # Adding model 'Assertion' - db.create_table('issue_assertion', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('check_function', self.gf('django.db.models.fields.TextField')()), - ('name', self.gf('django.db.models.fields.TextField')()), - )) - db.send_create_signal('issue', ['Assertion']) - - # Adding model 'ModelAssertion' - db.create_table('issue_modelassertion', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('check_function', self.gf('django.db.models.fields.TextField')()), - ('name', self.gf('django.db.models.fields.TextField')()), - ('model_type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['contenttypes.ContentType'])), - )) - db.send_create_signal('issue', ['ModelAssertion']) - - - def backwards(self, orm): - # Deleting model 'Issue' - db.delete_table('issue_issue') - - # Deleting model 'ModelIssue' - db.delete_table('issue_modelissue') - - # Deleting model 'IssueAction' - db.delete_table('issue_issueaction') - - # Deleting model 'Responder' - db.delete_table('issue_responder') - - # Deleting model 'ResponderAction' - db.delete_table('issue_responderaction') - - # Deleting model 'Assertion' - db.delete_table('issue_assertion') - - # Deleting model 'ModelAssertion' - db.delete_table('issue_modelassertion') - - - models = { - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'issue.assertion': { - 'Meta': {'object_name': 'Assertion'}, - 'check_function': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.TextField', [], {}) - }, - 'issue.issue': { - 'Meta': {'object_name': 'Issue'}, - 'creation_time': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'details': ('jsonfield.fields.JSONField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.TextField', [], {}), - 'resolved_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}) - }, - 'issue.issueaction': { - 'Meta': {'object_name': 'IssueAction'}, - 'details': ('jsonfield.fields.JSONField', [], {'null': 'True', 'blank': 'True'}), - 'execution_time': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'issue': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'executed_actions'", 'to': "orm['issue.Issue']"}), - 'responder_action': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['issue.ResponderAction']"}), - 'success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'issue.modelassertion': { - 'Meta': {'object_name': 'ModelAssertion'}, - 'check_function': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['contenttypes.ContentType']"}), - 'name': ('django.db.models.fields.TextField', [], {}) - }, - 'issue.modelissue': { - 'Meta': {'object_name': 'ModelIssue'}, - 'creation_time': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'details': ('jsonfield.fields.JSONField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.TextField', [], {}), - 'record_id': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'record_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['contenttypes.ContentType']"}), - 'resolved_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}) - }, - 'issue.responder': { - 'Meta': {'object_name': 'Responder'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'watch_pattern': ('regex_field.fields.RegexField', [], {'max_length': '128'}) - }, - 'issue.responderaction': { - 'Meta': {'object_name': 'ResponderAction'}, - 'delay_sec': ('django.db.models.fields.IntegerField', [], {}), - 'function_kwargs': ('jsonfield.fields.JSONField', [], {'default': '{}'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'responder': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['issue.Responder']"}), - 'target_function': ('django.db.models.fields.TextField', [], {}) - } - } - - complete_apps = ['issue'] \ No newline at end of file diff --git a/issue/south_migrations/__init__.py b/issue/south_migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/issue/version.py b/issue/version.py index 858de17..1a72d32 100644 --- a/issue/version.py +++ b/issue/version.py @@ -1 +1 @@ -__version__ = '1.0.5' +__version__ = '1.1.0' diff --git a/publish.py b/publish.py new file mode 100644 index 0000000..7fd2587 --- /dev/null +++ b/publish.py @@ -0,0 +1,5 @@ +import subprocess + +subprocess.call(['pip', 'install', 'wheel']) +subprocess.call(['python', 'setup.py', 'clean', '--all']) +subprocess.call(['python', 'setup.py', 'register', 'sdist', 'bdist_wheel', 'upload']) diff --git a/requirements/docs.txt b/requirements/docs.txt index eaaf0da..22c7c3d 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,4 +1,4 @@ Sphinx>=1.2.2 sphinx_rtd_theme psycopg2>=2.4.5 -django>=1.6 \ No newline at end of file +django>=1.7 \ No newline at end of file diff --git a/run_tests.py b/run_tests.py index f759f51..c410224 100644 --- a/run_tests.py +++ b/run_tests.py @@ -4,26 +4,17 @@ import sys from optparse import OptionParser -import django -from django.conf import settings - from settings import configure_settings # Configure the default settings configure_settings() -if django.VERSION[1] >= 7: - django.setup() # Django nose must be imported here since it depends on the settings being configured from django_nose import NoseTestSuiteRunner def run_tests(*test_args, **kwargs): - if 'south' in settings.INSTALLED_APPS: - from south.management.commands import patch_for_test_db_setup - patch_for_test_db_setup() - if not test_args: test_args = ['issue'] @@ -38,7 +29,6 @@ def run_tests(*test_args, **kwargs): if __name__ == '__main__': parser = OptionParser() parser.add_option('--verbosity', dest='verbosity', action='store', default=1, type=int) - parser.add_options(NoseTestSuiteRunner.options) (options, args) = parser.parse_args() run_tests(*args, **options.__dict__) diff --git a/settings.py b/settings.py index 1ee5678..eef231a 100644 --- a/settings.py +++ b/settings.py @@ -1,6 +1,5 @@ import os -import django from django.conf import settings @@ -45,7 +44,9 @@ def configure_settings(): 'django.contrib.admin', 'issue', 'issue.tests', - ) + (('south',) if django.VERSION[1] <= 6 else ()), + ), ROOT_URLCONF='issue.urls', DEBUG=False, + TEST_RUNNER='django_nose.NoseTestSuiteRunner', + NOSE_ARGS=['--nocapture', '--nologcapture', '--verbosity=1'], ) diff --git a/setup.cfg b/setup.cfg index 99d6a25..4956ced 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [flake8] max-line-length = 120 -exclude = build,docs,venv,env,*.egg,migrations,south_migrations +exclude = build,docs,venv,env,*.egg,migrations ignore = E402 max-complexity = 10 diff --git a/setup.py b/setup.py index 17f8d8c..39447bd 100755 --- a/setup.py +++ b/setup.py @@ -35,25 +35,24 @@ def get_version(): 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Framework :: Django', - 'Framework :: Django :: 1.6', 'Framework :: Django :: 1.7', + 'Framework :: Django :: 1.8', ], license='MIT', install_requires=[ - 'Django>=1.6', - 'django-manager-utils>=0.7.2', - 'django-regex-field>=0.1.5', + 'Django>=1.7', + 'django-manager-utils>=0.8.2', + 'django-regex-field>=0.2.0', 'enum34>=1.0', 'jsonfield>=0.9.20', ], tests_require=[ 'psycopg2', 'coverage>=3.7.1', - 'south>=1.0.2', 'django-dynamic-fixture>=1.7.0', - 'django-nose', + 'django-nose>=1.4', 'freezegun>=0.1.12', - 'mock>=1.0.1', + 'mock==1.0.1', 'ipdb>=0.8', 'ipdbplugin>=1.4', 'six>=1.8.0',