Hola, José!

I've attached a patch that fixes a bunch of things, which I'll explain below. 
Please note that it depends on the latest repoze.what revision in the 
repository because I've just added support for read-only adapters in the 
testutil (so now they are fully supported).

Most of the tests that don't pass now seem are caused by a pyparsing 
exception:
> ParseException: Expected "]" (at char 4), (line:1, col:5)

So the other failures may be a consequence of this. I would've solved that, 
but I've never used pyparsing (yet).

On Friday December 5, 2008 23:13:07 [EMAIL PROTECTED] wrote:
> 1) Mea culpa. Corrected the typo, added the namespaces, corrected setup.py
> to add VERSION.txt, and tests/*.ini files. 'python setup.py test' runs and
> generates no output.

Thanks! It took me a while to spot the problem, but it turned out to be that 
the test files had execute permissions and thus they were ignored.

> 2) Added 'self.is_writable = False'. I'm working on the writable version.

Cool :)

> It's easy if you don't mind to trow away all the comments in the source
> files on each change.

I think that would not be a problem.

> 3) No more __init__ in INIAdapter subclasses.
> 4) Created public repository on:
>
>     http://github.com/jdinuncio/repoze.what.plugins.ini/tree/master

That's awesome. It's very handy to keep track of the development.

> Thanks!

Thanks to you for taking the time to extend repoze.what!

> BTW: Is it OK to use repoze-dev for this thread?

Sure. As Chris already pointed out, this is definitely the right place ;-)

Saludos!
-- 
Gustavo Narea <http://gustavonarea.net/>.

Get rid of unethical constraints! Get freedomware:
http://www.getgnulinux.org/
diff --git a/repoze/what/plugins/ini/ini.py b/repoze/what/plugins/ini/ini.py
index b8f77c7..27a4066 100755
--- a/repoze/what/plugins/ini/ini.py
+++ b/repoze/what/plugins/ini/ini.py
@@ -51,7 +51,7 @@ class INIAdapter(BaseSourceAdapter):
         return self.info.keys()
 
     def _get_section_items(self, section):
-        return set(sef.info[section])
+        return set(self.info[section])
 
     def _find_sections(self, hint):
         raise SourceError('This is implemented in the groups and '
@@ -61,25 +61,9 @@ class INIAdapter(BaseSourceAdapter):
         raise SourceError('For including items you must edit the '
                           'INI file directly.')
 
-    def _exclude_items(self, section, items):
-        raise SourceError('For excluding items you must edit the '
-                          'INI file directly.')
-
     def _item_is_included(self, section, item):
         return item in self.info[section]
 
-    def _create_section(self, section):
-        raise SourceError('For create a new section you must edit the '
-                          'INI file directly.')
-
-    def _edit_section(self, section, new_section):
-        raise SourceError('For edit a section you must edit the '
-                          'INI file directly.')
-
-    def _delete_section(self, section):
-        raise SourceError('For delete a section you must edit the '
-                          'INI file directly.')
-
     def _section_exists(self, section):
         return section in self.info
 
@@ -89,10 +73,10 @@ class INIGroupAdapter(INIAdapter):
 
     def _find_sections(self, hint):
         userid = hint['repoze.who.userid']
-        answer = []
+        answer = set()
         for section in self.info.keys():
             if userid in self.info[section]:
-                answer.append(section)
+                answer.add(section)
         return answer
 
 
@@ -100,10 +84,10 @@ class INIPermissionsAdapter(INIAdapter):
     """INI Permissions Adapters."""
 
     def _find_sections(self, hint):
-        answer = []
+        answer = set()
         for section in self.info.keys():
             if hint in self.info[section]:
-                answer.append(section)
+                answer.add(section)
         return answer
 
 
diff --git a/setup.py b/setup.py
index c847ed9..592d576 100644
--- a/setup.py
+++ b/setup.py
@@ -20,7 +20,10 @@ setup(name='repoze.what.plugins.ini',
       packages=find_packages(),
       include_package_data=True,
       zip_safe=False,
+      tests_require=['repoze.what', 'nose'],
+      test_suite="nose.collector",
       install_requires=['repoze.what', 'pyparsing'],
       namespace_packages=['repoze', 'repoze.what', 'repoze.what.plugins'],
-      entry_points='',
+      entry_points="""\
+      """,
       )
diff --git a/tests/test_parser.py b/tests/test_parser.py
old mode 100755
new mode 100644
diff --git a/tests/test_plugin_ini.py b/tests/test_plugin_ini.py
old mode 100755
new mode 100644
index 0c7296f..2660639
--- a/tests/test_plugin_ini.py
+++ b/tests/test_plugin_ini.py
@@ -18,15 +18,16 @@
 import os.path
 import unittest
 
-from repoze.what.adapters.testutil import GroupsAdapterTester
-from repoze.what.adapters.testutil import PermissionsAdapterTester
+from repoze.what.adapters.testutil import ReadOnlyGroupsAdapterTester, \
+                                          ReadOnlyPermissionsAdapterTester
 
 from repoze.what.plugins.ini import INIGroupAdapter
 from repoze.what.plugins.ini import INIPermissionsAdapter
 
 current_dir = os.path.abspath(os.path.dirname(__file__))
 
-class TestINIGroupAdapterTester(GroupsAdapterTester, unittest.TestCase):
+class TestINIGroupAdapterTester(ReadOnlyGroupsAdapterTester,
+                                unittest.TestCase):
     '''Test Suite for INI group source adapter.'''
     def setUp(self):
         super(TestINIGroupAdapterTester, self).setUp()
@@ -34,7 +35,8 @@ class TestINIGroupAdapterTester(GroupsAdapterTester, unittest.TestCase):
         self.adapter = INIGroupAdapter(fake_groups)
 
 
-class TestINIPermissionsTester(PermissionsAdapterTester, unittest.TestCase):
+class TestINIPermissionsTester(ReadOnlyPermissionsAdapterTester, 
+                               unittest.TestCase):
     '''Test Suite for INI permission source adapter.'''
     def setUp(self):
         super(TestINIPermissionsTester, self).setUp()
_______________________________________________
Repoze-dev mailing list
Repoze-dev@lists.repoze.org
http://lists.repoze.org/listinfo/repoze-dev

Reply via email to