From abd21dd345b27eccc24c811a9c1cdea5405a7543 Mon Sep 17 00:00:00 2001 From: Oskar Hahn Date: Mon, 26 Nov 2012 10:05:51 +0100 Subject: [PATCH 1/4] Added more tests for the agenda --- openslides/projector/projector.py | 2 ++ tests/agenda/__init__.py | 0 tests/agenda/models.py | 18 ++++++++++++++++++ tests/{test_agenda.py => agenda/tests.py} | 16 +++++++++++----- 4 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 tests/agenda/__init__.py create mode 100644 tests/agenda/models.py rename tests/{test_agenda.py => agenda/tests.py} (92%) diff --git a/openslides/projector/projector.py b/openslides/projector/projector.py index 885c4291d..6e3129f4b 100644 --- a/openslides/projector/projector.py +++ b/openslides/projector/projector.py @@ -49,6 +49,8 @@ class SlideMixin(object): """ Return True, if the the slide is the active slide. """ + if self.id is None: + return False from openslides.projector.api import get_active_slide return get_active_slide(only_sid=True) == self.sid diff --git a/tests/agenda/__init__.py b/tests/agenda/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/agenda/models.py b/tests/agenda/models.py new file mode 100644 index 000000000..f61694356 --- /dev/null +++ b/tests/agenda/models.py @@ -0,0 +1,18 @@ +from django.db import models + +from openslides.projector.projector import SlideMixin +from openslides.projector.api import register_slidemodel + + +class ReleatedItem(SlideMixin, models.Model): + prefix = 'releateditem' + + name = models.CharField(max_length='255') + + def get_agenda_title(self): + return self.name + + def get_agenda_title_supplement(self): + return 'test item' + +register_slidemodel(ReleatedItem) diff --git a/tests/test_agenda.py b/tests/agenda/tests.py similarity index 92% rename from tests/test_agenda.py rename to tests/agenda/tests.py index 14fcf78e2..05c582f66 100644 --- a/tests/test_agenda.py +++ b/tests/agenda/tests.py @@ -19,6 +19,8 @@ from openslides.participant.models import User from openslides.agenda.models import Item from openslides.agenda.slides import agenda_show +from .models import ReleatedItem + class ItemTest(TestCase): def setUp(self): @@ -26,6 +28,8 @@ class ItemTest(TestCase): self.item2 = Item.objects.create(title='item2') self.item3 = Item.objects.create(title='item1A', parent=self.item1) self.item4 = Item.objects.create(title='item1Aa', parent=self.item3) + self.releated = ReleatedItem.objects.create(name='foo') + self.item5 = Item.objects.create(title='item5', related_sid=self.releated.sid) def testClosed(self): self.assertFalse(self.item1.closed) @@ -47,11 +51,6 @@ class ItemTest(TestCase): self.assertTrue(self.item3 in self.item1.get_children()) self.assertFalse(self.item4 in self.item1.get_children()) - l = Item.objects.all() - self.assertEqual( - str(l), - "[, , , ]") - def testForms(self): for item in Item.objects.all(): initial = item.weight_form.initial @@ -89,6 +88,13 @@ class ItemTest(TestCase): self.assertEqual(data['template'], 'projector/AgendaSummary.html') self.assertEqual(data['title'], 'Agenda') + def test_releated_item(self): + self.assertEqual(self.item5.get_title(), self.releated.name) + self.assertEqual(self.item5.get_title_supplement(), 'test item') + self.assertEqual(self.item5.get_related_type(), 'releateditem') + self.assertEqual(self.item5.print_related_type(), 'Releateditem') + + class ViewTest(TestCase): def setUp(self): From c276bce7802bf17f73c8c3e4d71de7ec18d0c6be Mon Sep 17 00:00:00 2001 From: Oskar Hahn Date: Mon, 26 Nov 2012 10:11:36 +0100 Subject: [PATCH 2/4] Let travis test pep8 --- .travis.yml | 6 ++++-- openslides/participant/models.py | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index b65d5b1dd..c2ab9f6c1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,8 @@ python: - "2.7" install: - pip install -r requirements.txt --use-mirrors - - pip install coverage django-discover-runner + - pip install coverage django-discover-runner pep8 - python extras/scripts/create_local_settings.py -script: coverage run ./manage.py test tests && coverage report -m +script: + - coverage run ./manage.py test tests && coverage report -m + - pep8 --max-line-length=150 openslides | grep -v utils/pdf.py | grep -v urls.py | grep -v motion/ diff --git a/openslides/participant/models.py b/openslides/participant/models.py index 0adb6219d..bd771945d 100644 --- a/openslides/participant/models.py +++ b/openslides/participant/models.py @@ -138,7 +138,9 @@ class Group(DjangoGroup, PersonMixin, Person, SlideMixin): person_prefix = 'group' django_group = models.OneToOneField(DjangoGroup, editable=False, parent_link=True) - group_as_person = models.BooleanField(default=False, verbose_name=_("Use this group as participant"), help_text=_('For example as submitter of a motion.')) + group_as_person = models.BooleanField( + default=False, verbose_name=_("Use this group as participant"), + help_text=_('For example as submitter of a motion.')) description = models.TextField(blank=True, verbose_name=_("Description")) @models.permalink From a0e4519b6248a48dc0b0dcb804b1f32364bd5721 Mon Sep 17 00:00:00 2001 From: Oskar Hahn Date: Mon, 26 Nov 2012 10:19:45 +0100 Subject: [PATCH 3/4] fixed travis pep8 line --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c2ab9f6c1..ba93efe7c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,4 +9,4 @@ install: - python extras/scripts/create_local_settings.py script: - coverage run ./manage.py test tests && coverage report -m - - pep8 --max-line-length=150 openslides | grep -v utils/pdf.py | grep -v urls.py | grep -v motion/ + - pep8 --max-line-length=150 --exclude="urls.py,motion/,pdf.py" --statistics openslides From bdfb7140139bed2e57984af0d7e3ddf8f022bd1e Mon Sep 17 00:00:00 2001 From: Oskar Hahn Date: Mon, 26 Nov 2012 10:35:29 +0100 Subject: [PATCH 4/4] fixed pep8 in pdf.py --- .travis.yml | 2 +- openslides/utils/pdf.py | 144 ++++++++++++++++++++-------------------- 2 files changed, 73 insertions(+), 73 deletions(-) diff --git a/.travis.yml b/.travis.yml index ba93efe7c..bad214ce7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,4 +9,4 @@ install: - python extras/scripts/create_local_settings.py script: - coverage run ./manage.py test tests && coverage report -m - - pep8 --max-line-length=150 --exclude="urls.py,motion/,pdf.py" --statistics openslides + - pep8 --max-line-length=150 --exclude="urls.py,motion/" --statistics openslides diff --git a/openslides/utils/pdf.py b/openslides/utils/pdf.py index 439d55744..4064f109e 100755 --- a/openslides/utils/pdf.py +++ b/openslides/utils/pdf.py @@ -116,93 +116,93 @@ stylesheet.add(ParagraphStyle( name='Tablecell', parent=stylesheet['Normal'], fontSize=9)) -stylesheet.add(ParagraphStyle(name = 'Signaturefield', - parent = stylesheet['Normal'], - spaceBefore = 15) +stylesheet.add(ParagraphStyle(name='Signaturefield', + parent=stylesheet['Normal'], + spaceBefore=15) ) # Ballot stylesheets -stylesheet.add(ParagraphStyle(name = 'Ballot_title', - parent = stylesheet['Bold'], - fontSize = 12, - leading = 14, - leftIndent = 30), +stylesheet.add(ParagraphStyle(name='Ballot_title', + parent=stylesheet['Bold'], + fontSize=12, + leading=14, + leftIndent=30), ) -stylesheet.add(ParagraphStyle(name = 'Ballot_subtitle', - parent = stylesheet['Normal'], - fontSize = 10, - leading = 12, - leftIndent = 30, - rightIndent = 20, - spaceAfter = 5), +stylesheet.add(ParagraphStyle(name='Ballot_subtitle', + parent=stylesheet['Normal'], + fontSize=10, + leading=12, + leftIndent=30, + rightIndent=20, + spaceAfter=5), ) -stylesheet.add(ParagraphStyle(name = 'Ballot_description', - parent = stylesheet['Normal'], - fontSize = 7, - leading = 10, - leftIndent = 30), +stylesheet.add(ParagraphStyle(name='Ballot_description', + parent=stylesheet['Normal'], + fontSize=7, + leading=10, + leftIndent=30), ) -stylesheet.add(ParagraphStyle(name = 'Ballot_option', - parent = stylesheet['Normal'], - fontSize = 12, - leading = 24, - leftIndent = 30), +stylesheet.add(ParagraphStyle(name='Ballot_option', + parent=stylesheet['Normal'], + fontSize=12, + leading=24, + leftIndent=30), ) -stylesheet.add(ParagraphStyle(name = 'Monotype', - parent = stylesheet['Normal'], - fontName = 'Courier', - fontSize = 12, - leading = 24, - leftIndent = 30), +stylesheet.add(ParagraphStyle(name='Monotype', + parent=stylesheet['Normal'], + fontName='Courier', + fontSize=12, + leading=24, + leftIndent=30), ) -stylesheet.add(ParagraphStyle(name = 'Ballot_option_name', - parent = stylesheet['Normal'], - fontSize = 12, - leading = 15, - leftIndent = 30), +stylesheet.add(ParagraphStyle(name='Ballot_option_name', + parent=stylesheet['Normal'], + fontSize=12, + leading=15, + leftIndent=30), ) -stylesheet.add(ParagraphStyle(name = 'Ballot_option_group', - parent = stylesheet['Normal'], - fontSize = 8, - leading = 15, - leftIndent = 30), +stylesheet.add(ParagraphStyle(name='Ballot_option_group', + parent=stylesheet['Normal'], + fontSize=8, + leading=15, + leftIndent=30), ) -stylesheet.add(ParagraphStyle(name = 'Ballot_option_YNA', - parent = stylesheet['Normal'], - fontSize = 12, - leading = 15, - leftIndent = 49, - spaceAfter = 18), +stylesheet.add(ParagraphStyle(name='Ballot_option_YNA', + parent=stylesheet['Normal'], + fontSize=12, + leading=15, + leftIndent=49, + spaceAfter=18), ) -stylesheet.add(ParagraphStyle(name = 'Ballot_option_group_right', - parent = stylesheet['Normal'], - fontSize = 8, - leading = 16, - leftIndent = 49), +stylesheet.add(ParagraphStyle(name='Ballot_option_group_right', + parent=stylesheet['Normal'], + fontSize=8, + leading=16, + leftIndent=49), ) -stylesheet.add(ParagraphStyle(name = 'Badge_title', - parent = stylesheet['Bold'], - fontSize = 16, - leading = 22, - leftIndent = 30), +stylesheet.add(ParagraphStyle(name='Badge_title', + parent=stylesheet['Bold'], + fontSize=16, + leading=22, + leftIndent=30), ) -stylesheet.add(ParagraphStyle(name = 'Badge_subtitle', - parent = stylesheet['Normal'], - fontSize = 12, - leading = 24, - leftIndent = 30), +stylesheet.add(ParagraphStyle(name='Badge_subtitle', + parent=stylesheet['Normal'], + fontSize=12, + leading=24, + leftIndent=30), ) stylesheet.add(ParagraphStyle( - name = 'Badge_italic', - parent = stylesheet['Italic'], - fontSize = 12, - leading = 24, - leftIndent = 30, + name='Badge_italic', + parent=stylesheet['Italic'], + fontSize=12, + leading=24, + leftIndent=30, )) stylesheet.add(ParagraphStyle( - name = 'Badge_qrcode', - fontSize = 12, - leftIndent = 190, + name='Badge_qrcode', + fontSize=12, + leftIndent=190, )) @@ -213,13 +213,13 @@ def firstPage(canvas, doc): canvas.setFillGray(0.4) title_line = u"%s | %s" % (config["event_name"], - config["event_description"]) + config["event_description"]) if len(title_line) > 75: title_line = "%s ..." % title_line[:70] canvas.drawString(2.75 * cm, 28 * cm, title_line) if config["event_date"] and config["event_location"]: canvas.drawString(2.75 * cm, 27.6 * cm, u"%s, %s" - % (config["event_date"], config["event_location"])) + % (config["event_date"], config["event_location"])) # time canvas.setFont('Ubuntu', 7)