From b4c3f2f4dc087c12a4b0bcf0efb58bc8eb8c46c5 Mon Sep 17 00:00:00 2001 From: Skia Date: Wed, 20 Apr 2016 03:30:49 +0200 Subject: [PATCH] Fix tests --- accounting/migrations/0001_initial.py | 71 +++++++++++-------- .../migrations/0002_auto_20160419_2327.py | 24 ------- core/management/commands/populate.py | 7 +- core/models.py | 15 ++-- counter/migrations/0001_initial.py | 10 +-- 5 files changed, 59 insertions(+), 68 deletions(-) delete mode 100644 accounting/migrations/0002_auto_20160419_2327.py diff --git a/accounting/migrations/0001_initial.py b/accounting/migrations/0001_initial.py index 5e1b303a..debb3b4c 100644 --- a/accounting/migrations/0001_initial.py +++ b/accounting/migrations/0001_initial.py @@ -2,32 +2,41 @@ from __future__ import unicode_literals from django.db import migrations, models -import accounting.models from django.conf import settings +import accounting.models class Migration(migrations.Migration): dependencies = [ - ('club', '__first__'), ('core', '0001_initial'), + ('club', '0001_initial'), ] operations = [ + migrations.CreateModel( + name='AccountingType', + fields=[ + ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), + ('code', models.CharField(max_length=16, verbose_name='code')), + ('label', models.CharField(max_length=60, verbose_name='label')), + ('movement_type', models.CharField(max_length=12, verbose_name='movement type', choices=[('credit', 'Credit'), ('debit', 'Debit'), ('neutral', 'Neutral')])), + ], + ), migrations.CreateModel( name='BankAccount', fields=[ - ('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)), - ('name', models.CharField(verbose_name='name', max_length=30)), - ('rib', models.CharField(verbose_name='rib', max_length=255)), - ('number', models.CharField(verbose_name='account number', max_length=255)), + ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=30, verbose_name='name')), + ('rib', models.CharField(max_length=255, verbose_name='rib', blank=True)), + ('number', models.CharField(max_length=255, verbose_name='account number', blank=True)), ], ), migrations.CreateModel( name='ClubAccount', fields=[ - ('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)), - ('name', models.CharField(verbose_name='name', max_length=30)), + ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=30, verbose_name='name')), ('bank_account', models.ForeignKey(related_name='club_accounts', to='accounting.BankAccount')), ('club', models.OneToOneField(related_name='club_accounts', to='club.Club')), ], @@ -35,8 +44,8 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Customer', fields=[ - ('user', models.OneToOneField(primary_key=True, to=settings.AUTH_USER_MODEL, serialize=False)), - ('account_id', models.CharField(verbose_name='account id', unique=True, max_length=10)), + ('user', models.OneToOneField(to=settings.AUTH_USER_MODEL, primary_key=True, serialize=False)), + ('account_id', models.CharField(max_length=10, verbose_name='account id', unique=True)), ], options={ 'verbose_name_plural': 'customers', @@ -46,10 +55,10 @@ class Migration(migrations.Migration): migrations.CreateModel( name='GeneralJournal', fields=[ - ('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)), + ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), ('start_date', models.DateField(verbose_name='start date')), - ('end_date', models.DateField(default=None, verbose_name='end date', null=True, blank=True)), - ('name', models.CharField(verbose_name='name', max_length=30)), + ('end_date', models.DateField(null=True, default=None, verbose_name='end date', blank=True)), + ('name', models.CharField(max_length=30, verbose_name='name')), ('closed', models.BooleanField(default=False, verbose_name='is closed')), ('club_account', models.ForeignKey(related_name='journals', to='accounting.ClubAccount')), ], @@ -57,36 +66,42 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Operation', fields=[ - ('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)), - ('name', models.CharField(verbose_name='name', max_length=100)), + ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), + ('date', models.DateField(verbose_name='date')), + ('remark', models.TextField(max_length=255, verbose_name='remark')), + ('mode', models.CharField(max_length=255, verbose_name='payment method', choices=[('cheque', 'Chèque'), ('cash', 'Espèce'), ('transfert', 'Virement'), ('card', 'Carte banquaire')])), + ('cheque_number', models.IntegerField(verbose_name='cheque number')), + ('invoice', models.FileField(null=True, upload_to='invoices', blank=True)), + ('done', models.BooleanField(default=False, verbose_name='is done')), ('journal', models.ForeignKey(related_name='invoices', to='accounting.GeneralJournal')), + ('type', models.ForeignKey(related_name='operations', to='accounting.AccountingType')), ], ), migrations.CreateModel( name='Product', fields=[ - ('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)), - ('name', models.CharField(verbose_name='name', max_length=30)), - ('description', models.TextField(blank=True, verbose_name='description')), - ('code', models.CharField(verbose_name='code', max_length=10)), - ('purchase_price', accounting.models.CurrencyField(verbose_name='purchase price', decimal_places=2, max_digits=12)), - ('selling_price', accounting.models.CurrencyField(verbose_name='selling price', decimal_places=2, max_digits=12)), - ('special_selling_price', accounting.models.CurrencyField(verbose_name='special selling price', decimal_places=2, max_digits=12)), - ('icon', models.ImageField(blank=True, null=True, upload_to='products')), + ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=30, verbose_name='name')), + ('description', models.TextField(verbose_name='description', blank=True)), + ('code', models.CharField(max_length=10, verbose_name='code')), + ('purchase_price', accounting.models.CurrencyField(max_digits=12, decimal_places=2, verbose_name='purchase price')), + ('selling_price', accounting.models.CurrencyField(max_digits=12, decimal_places=2, verbose_name='selling price')), + ('special_selling_price', accounting.models.CurrencyField(max_digits=12, decimal_places=2, verbose_name='special selling price')), + ('icon', models.ImageField(null=True, upload_to='products', blank=True)), ], ), migrations.CreateModel( name='ProductType', fields=[ - ('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)), - ('name', models.CharField(verbose_name='name', max_length=30)), - ('description', models.TextField(blank=True, verbose_name='description', null=True)), - ('icon', models.ImageField(blank=True, null=True, upload_to='products')), + ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=30, verbose_name='name')), + ('description', models.TextField(null=True, verbose_name='description', blank=True)), + ('icon', models.ImageField(null=True, upload_to='products', blank=True)), ], ), migrations.AddField( model_name='product', name='product_type', - field=models.ForeignKey(blank=True, related_name='products', null=True, to='accounting.ProductType'), + field=models.ForeignKey(null=True, to='accounting.ProductType', related_name='products', blank=True), ), ] diff --git a/accounting/migrations/0002_auto_20160419_2327.py b/accounting/migrations/0002_auto_20160419_2327.py deleted file mode 100644 index 8d8ac498..00000000 --- a/accounting/migrations/0002_auto_20160419_2327.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('accounting', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='bankaccount', - name='number', - field=models.CharField(max_length=255, blank=True, verbose_name='account number'), - ), - migrations.AlterField( - model_name='bankaccount', - name='rib', - field=models.CharField(max_length=255, blank=True, verbose_name='rib'), - ), - ] diff --git a/core/management/commands/populate.py b/core/management/commands/populate.py index 2fb5463e..b832293a 100644 --- a/core/management/commands/populate.py +++ b/core/management/commands/populate.py @@ -40,7 +40,6 @@ Welcome to the wiki page! # Here we add a lot of test datas, that are not necessary for the Sith, but that provide a basic development environment if not options['prod']: - print("Dev mode, adding some test data") # Adding user Skia s = User(username='skia', last_name="Kia", first_name="S'", email="skia@git.an", @@ -95,14 +94,14 @@ Cette page vise à documenter la syntaxe *Markdown* utilisée sur le site. guyut = Club(name="Guy'UT", unix_name="guyut", address="42 de la Boustifaille", parent=ae) guyut.save() - troll = Club(name="Troll Penché", unix_name="troll", - address="Terre Du Milieu", parent=ae) - troll.save() Club(name="Woenzel'UT", unix_name="woenzel", address="Woenzel", parent=guyut).save() Club(name="BdF", unix_name="bdf", address="Guyéuéyuéyuyé").save() Membership(user=s, club=ae, role=3, description="").save() + troll = Club(name="Troll Penché", unix_name="troll", + address="Terre Du Milieu", parent=ae) + troll.save() # Accounting test values: Customer(user=s, account_id="6568j").save() diff --git a/core/models.py b/core/models.py index 3aa0aaba..dd14bfdb 100644 --- a/core/models.py +++ b/core/models.py @@ -128,24 +128,25 @@ class User(AbstractBaseUser, PermissionsMixin): if group_name == settings.SITH_GROUPS['public']['name']: return True if group_name == settings.SITH_MAIN_MEMBERS_GROUP: # We check the subscription if asked - try: # TODO: change for a test in settings.INSTALLED_APP + if 'subscription' in settings.INSTALLED_APPS: from subscription import Subscriber s = Subscriber.objects.filter(pk=self.pk).first() if s is not None and s.is_subscribed(): return True else: return False - except Exception as e: - print(e) + else: return False if group_name[-6:] == settings.SITH_BOARD_SUFFIX: - try: # TODO: change for a test in settings.INSTALLED_APP + if 'club' in settings.INSTALLED_APPS: from club.models import Club name = group_name[:-6] c = Club.objects.filter(unix_name=name).first() - return c.get_membership_for(self).role >= 2 - except Exception as e: - print(e) + mem = c.get_membership_for(self) + if mem: + return mem.role >= 2 + return False + else: return False return self.groups.filter(name=group_name).exists() diff --git a/counter/migrations/0001_initial.py b/counter/migrations/0001_initial.py index 90205f7a..d6b73b84 100644 --- a/counter/migrations/0001_initial.py +++ b/counter/migrations/0001_initial.py @@ -8,21 +8,21 @@ class Migration(migrations.Migration): dependencies = [ ('club', '0001_initial'), - ('accounting', '0001_initial'), ('core', '0001_initial'), + ('accounting', '0001_initial'), ] operations = [ migrations.CreateModel( name='Counter', fields=[ - ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='ID', auto_created=True)), + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)), ('name', models.CharField(max_length=30, verbose_name='name')), ('type', models.CharField(max_length=255, verbose_name='subscription type', choices=[('BAR', 'Bar'), ('OFFICE', 'Office')])), ('club', models.ForeignKey(to='club.Club', related_name='counters')), - ('edit_groups', models.ManyToManyField(to='core.Group', blank=True, related_name='editable_counters')), - ('products', models.ManyToManyField(to='accounting.Product', blank=True, related_name='counters')), - ('view_groups', models.ManyToManyField(to='core.Group', blank=True, related_name='viewable_counters')), + ('edit_groups', models.ManyToManyField(blank=True, related_name='editable_counters', to='core.Group')), + ('products', models.ManyToManyField(blank=True, related_name='counters', to='accounting.Product')), + ('view_groups', models.ManyToManyField(blank=True, related_name='viewable_counters', to='core.Group')), ], ), ]