# HG changeset patch # User neko259 # Date 2013-09-06 18:11:33 # Node ID 3edd554a5ff9201c425abbbf59886db934fb48c1 # Parent aaf68ba24636c4b987f93877afdf45177ecc6580 Fixed some tests and views. Added migration for admin model removal. diff --git a/boards/migrations/0004_auto__del_admin__add_user__add_setting__add_field_post_user.py b/boards/migrations/0004_auto__del_admin__add_user__add_setting__add_field_post_user.py new file mode 100644 --- /dev/null +++ b/boards/migrations/0004_auto__del_admin__add_user__add_setting__add_field_post_user.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Deleting model 'Admin' + db.delete_table(u'boards_admin') + + # Adding model 'User' + db.create_table(u'boards_user', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('user_id', self.gf('django.db.models.fields.CharField')(max_length=50)), + ('rank', self.gf('django.db.models.fields.IntegerField')()), + ('registration_time', self.gf('django.db.models.fields.DateTimeField')()), + ('last_access_time', self.gf('django.db.models.fields.DateTimeField')()), + )) + db.send_create_signal(u'boards', ['User']) + + # Adding M2M table for field fav_tags on 'User' + m2m_table_name = db.shorten_name(u'boards_user_fav_tags') + db.create_table(m2m_table_name, ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('user', models.ForeignKey(orm[u'boards.user'], null=False)), + ('tag', models.ForeignKey(orm[u'boards.tag'], null=False)) + )) + db.create_unique(m2m_table_name, ['user_id', 'tag_id']) + + # Adding M2M table for field fav_threads on 'User' + m2m_table_name = db.shorten_name(u'boards_user_fav_threads') + db.create_table(m2m_table_name, ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('user', models.ForeignKey(orm[u'boards.user'], null=False)), + ('post', models.ForeignKey(orm[u'boards.post'], null=False)) + )) + db.create_unique(m2m_table_name, ['user_id', 'post_id']) + + # Adding model 'Setting' + db.create_table(u'boards_setting', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=50)), + ('value', self.gf('django.db.models.fields.CharField')(max_length=50)), + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['boards.User'])), + )) + db.send_create_signal(u'boards', ['Setting']) + + # Adding field 'Post.user' + db.add_column(u'boards_post', 'user', + self.gf('django.db.models.fields.related.ForeignKey')(default=None, to=orm['boards.User'], null=True), + keep_default=False) + + + def backwards(self, orm): + # Adding model 'Admin' + db.create_table(u'boards_admin', ( + ('password', self.gf('django.db.models.fields.CharField')(max_length=100)), + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=100)), + )) + db.send_create_signal(u'boards', ['Admin']) + + # Deleting model 'User' + db.delete_table(u'boards_user') + + # Removing M2M table for field fav_tags on 'User' + db.delete_table(db.shorten_name(u'boards_user_fav_tags')) + + # Removing M2M table for field fav_threads on 'User' + db.delete_table(db.shorten_name(u'boards_user_fav_threads')) + + # Deleting model 'Setting' + db.delete_table(u'boards_setting') + + # Deleting field 'Post.user' + db.delete_column(u'boards_post', 'user_id') + + + models = { + u'boards.ban': { + 'Meta': {'object_name': 'Ban'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}) + }, + u'boards.post': { + 'Meta': {'object_name': 'Post'}, + '_text_rendered': ('django.db.models.fields.TextField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('boards.thumbs.ImageWithThumbsField', [], {'max_length': '100', 'blank': 'True'}), + 'image_height': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'image_width': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'last_edit_time': ('django.db.models.fields.DateTimeField', [], {}), + 'parent': ('django.db.models.fields.BigIntegerField', [], {}), + 'poster_ip': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), + 'poster_user_agent': ('django.db.models.fields.TextField', [], {}), + 'pub_time': ('django.db.models.fields.DateTimeField', [], {}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['boards.Tag']", 'symmetrical': 'False'}), + 'text': ('markupfield.fields.MarkupField', [], {'rendered_field': 'True'}), + 'text_markup_type': ('django.db.models.fields.CharField', [], {'default': "'markdown'", 'max_length': '30'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '50'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['boards.User']", 'null': 'True'}) + }, + u'boards.setting': { + 'Meta': {'object_name': 'Setting'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['boards.User']"}), + 'value': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'boards.tag': { + 'Meta': {'object_name': 'Tag'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + u'boards.user': { + 'Meta': {'object_name': 'User'}, + 'fav_tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['boards.Tag']", 'symmetrical': 'False'}), + 'fav_threads': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'+'", 'symmetrical': 'False', 'to': u"orm['boards.Post']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_access_time': ('django.db.models.fields.DateTimeField', [], {}), + 'rank': ('django.db.models.fields.IntegerField', [], {}), + 'registration_time': ('django.db.models.fields.DateTimeField', [], {}), + 'user_id': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + } + } + + complete_apps = ['boards'] \ No newline at end of file diff --git a/boards/tests.py b/boards/tests.py --- a/boards/tests.py +++ b/boards/tests.py @@ -4,7 +4,7 @@ from django.test.client import Client import boards -from boards.models import Post, Admin, Tag +from boards.models import Post, Tag from neboard import settings TEST_TEXT = 'test text' @@ -78,13 +78,6 @@ class BoardTests(TestCase): self.assertEqual(settings.MAX_THREAD_COUNT, len(Post.objects.get_threads())) - def test_get(self): - """Test if the get computes properly""" - - post = self._create_post() - - self.assertTrue(post.is_get()) - def test_pages(self): """Test that the thread list is properly split into pages""" @@ -160,6 +153,7 @@ class BoardTests(TestCase): response_not_existing = client.get(THREAD_PAGE + str( existing_post_id + 1) + '/') + response_not_existing.get_full_path() self.assertEqual(HTTP_CODE_NOT_FOUND, response_not_existing.status_code, u'Not existing thread is opened') diff --git a/boards/views.py b/boards/views.py --- a/boards/views.py +++ b/boards/views.py @@ -11,7 +11,7 @@ from boards import utils from boards.forms import ThreadForm, PostForm, SettingsForm, PlainErrorList, \ ThreadCaptchaForm, PostCaptchaForm -from boards.models import Post, Admin, Tag, Ban, User, RANK_USER, RANK_MODERATOR, NO_PARENT +from boards.models import Post, Tag, Ban, User, RANK_USER, RANK_MODERATOR, NO_PARENT from boards import authors import neboard @@ -292,8 +292,10 @@ def _get_user(request): md5.update(session.session_key) new_id = md5.hexdigest() + time_now = timezone.now() user = User.objects.create(user_id=new_id, rank=RANK_USER, - registration_time=timezone.now()) + registration_time=time_now, + last_access_time=time_now) session['user_id'] = user.id else: