[Checkins] SVN: grokapps/Flint/src/flint/ skeleton unit and functional tests

Luciano Ramalho luciano at ramalho.org
Sun Jun 22 18:30:33 EDT 2008


Log message for revision 87662:
  skeleton unit and functional tests

Changed:
  _U  grokapps/Flint/src/flint/
  A   grokapps/Flint/src/flint/app_tests/
  A   grokapps/Flint/src/flint/app_tests/__init__.py
  A   grokapps/Flint/src/flint/app_tests/calendar_example.txt
  A   grokapps/Flint/src/flint/app_tests/essential_use_cases.txt
  A   grokapps/Flint/src/flint/app_tests/functional.py
  A   grokapps/Flint/src/flint/app_tests/functional.txt
  A   grokapps/Flint/src/flint/app_tests/start.txt
  A   grokapps/Flint/src/flint/app_tests/test_app.py
  U   grokapps/Flint/src/flint/ftesting.zcml
  A   grokapps/Flint/src/flint/tests.py

-=-

Property changes on: grokapps/Flint/src/flint
___________________________________________________________________
Name: svn:ignore
   + *.pyc


Added: grokapps/Flint/src/flint/app_tests/__init__.py
===================================================================

Added: grokapps/Flint/src/flint/app_tests/calendar_example.txt
===================================================================
--- grokapps/Flint/src/flint/app_tests/calendar_example.txt	                        (rev 0)
+++ grokapps/Flint/src/flint/app_tests/calendar_example.txt	2008-06-22 22:30:32 UTC (rev 87662)
@@ -0,0 +1,20 @@
+*** XXX: TRANSLATE THIS TO ENGLISH ***
+
+Fazer do doctest principal que vai descrever um caso de uso do começo
+ao fim, o mesmo script que vai criar a app "default" do Flint.
+
+Esta app default teria dois tipos de conteúdo: Story e Event.
+
+A interface pública teria duas Sections, uma para cada um desses tipos
+de conteúdo. A estrutura automática da pasta "calendar", que conteria
+Generated Pages para Events, seria baseada na data de acontecimento do
+evento, e a estrutura automática de Story, seria baseada em alguma
+outra coisa, tipo "assunto", já para exercitar tags.
+
+A página principal teria a Story mais recente, e um calendário no
+portlet direito, com um link para uma listagem por data dos próximos
+eventos.
+
+Pensei também em uma graça para a Story, ela teria paginação
+automática baseada no número de parágrafos, mas com controle de órfãos
+para não ficar uma página com um parágrafo só.

Added: grokapps/Flint/src/flint/app_tests/essential_use_cases.txt
===================================================================
--- grokapps/Flint/src/flint/app_tests/essential_use_cases.txt	                        (rev 0)
+++ grokapps/Flint/src/flint/app_tests/essential_use_cases.txt	2008-06-22 22:30:32 UTC (rev 87662)
@@ -0,0 +1,47 @@
+====================
+Essential use cases
+====================
+
+:Test-Layer: functional
+
+-------------------------------
+Administrator sets up blog site
+-------------------------------
+
+The site administrator creates an instance of Flint to be used for simple blogging.
+
+	>>>	
+	
+After creating the instance, Administrator navigates to ++skin++manage to set up a user.
+The blog will have one writer, called "wilma".
+
+	>>>
+	
+Then the Administrator goes to ++skin++publish to set up a single section, configured with a selection rule which picks up any story that is tagged as published.
+
+	>>>
+
+--------------------
+Writer creates story
+--------------------
+
+Writer navigates to ++skin++manage and is redirected to login screen.
+
+	>>> 1 + 1
+	2
+	
+After login, writer sees content management interface and clicks the "Add story" button.
+
+	>>> 1 + 2
+	3
+	
+Writer writes story, saves it and sees it in the listing of recent stories.
+
+	>>>
+	
+Writer tags the story as "published" and clicks the "View" button, which performs a search for stories matching the one just written. In this simple site, the story appears in only one page so the search results view redirects to it.
+
+	>>>
+
+
+

Added: grokapps/Flint/src/flint/app_tests/functional.py
===================================================================
--- grokapps/Flint/src/flint/app_tests/functional.py	                        (rev 0)
+++ grokapps/Flint/src/flint/app_tests/functional.py	2008-06-22 22:30:32 UTC (rev 87662)
@@ -0,0 +1,17 @@
+"""
+Do a functional test on the app.
+
+:Test-Layer: python
+"""
+from flint.app import Flint
+from flint.testing import FunctionalLayer
+from zope.app.testing.functional import FunctionalTestCase
+class FlintFunctionalTest(FunctionalTestCase):
+    layer = FunctionalLayer
+class SimpleFlintFunctionalTest(FlintFunctionalTest):
+    """ This the app in ZODB. """
+    def test_simple(self):
+        """ test creating a Flint instance into Zope """
+        root = self.getRootFolder()
+        root['instance'] = Flint()
+        self.assertEqual(root.get('instance').__class__, Flint)

Added: grokapps/Flint/src/flint/app_tests/functional.txt
===================================================================
--- grokapps/Flint/src/flint/app_tests/functional.txt	                        (rev 0)
+++ grokapps/Flint/src/flint/app_tests/functional.txt	2008-06-22 22:30:32 UTC (rev 87662)
@@ -0,0 +1,13 @@
+Do a functional doctest test on the app.
+****************************************
+
+:Test-Layer: functional
+
+Test creating a Flint instance into Grok::
+
+   >>> from flint.app import Flint
+   >>> root = getRootFolder()
+   >>> root['instance'] = Flint()
+   >>> root.get('instance').__class__.__name__
+   'Flint'
+

Added: grokapps/Flint/src/flint/app_tests/start.txt
===================================================================
--- grokapps/Flint/src/flint/app_tests/start.txt	                        (rev 0)
+++ grokapps/Flint/src/flint/app_tests/start.txt	2008-06-22 22:30:32 UTC (rev 87662)
@@ -0,0 +1,11 @@
+Do a simple doctest test on the app.
+************************************
+:Test-Layer: unit
+
+When you create an instance there are no objects in it::
+
+   >>> from flint.app import Flint
+   >>> grokapp = Flint()
+   >>> list(grokapp.keys())
+   []
+

Added: grokapps/Flint/src/flint/app_tests/test_app.py
===================================================================
--- grokapps/Flint/src/flint/app_tests/test_app.py	                        (rev 0)
+++ grokapps/Flint/src/flint/app_tests/test_app.py	2008-06-22 22:30:32 UTC (rev 87662)
@@ -0,0 +1,15 @@
+"""
+Do a Python test on the app.
+:Test-Layer: python
+"""
+import unittest
+from flint.app import Flint
+
+class FlintSmokeTest(unittest.TestCase):
+    """ Test that the Flint application can be instantiated. """
+
+    def test1(self):
+        """ test that something works """
+        grokapp = Flint()
+        self.assertEqual(list(grokapp.keys()), [])
+

Modified: grokapps/Flint/src/flint/ftesting.zcml
===================================================================
--- grokapps/Flint/src/flint/ftesting.zcml	2008-06-22 22:20:35 UTC (rev 87661)
+++ grokapps/Flint/src/flint/ftesting.zcml	2008-06-22 22:30:32 UTC (rev 87662)
@@ -9,7 +9,7 @@
 
   <!-- Typical functional testing security setup -->
   <securityPolicy
-      component="zope.app.securitypolicy.zopepolicy.ZopeSecurityPolicy"
+      component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
       />
 
   <unauthenticatedPrincipal

Added: grokapps/Flint/src/flint/tests.py
===================================================================
--- grokapps/Flint/src/flint/tests.py	                        (rev 0)
+++ grokapps/Flint/src/flint/tests.py	2008-06-22 22:30:32 UTC (rev 87662)
@@ -0,0 +1,2 @@
+import z3c.testsetup
+test_suite = z3c.testsetup.register_all_tests('flint')
\ No newline at end of file



More information about the Checkins mailing list