commit:     794f56f5ae531a5b24200ad3c0d6cf7112305da8
Author:     Devan Franchini <twitch153 <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 28 03:37:32 2015 +0000
Commit:     Devan Franchini <twitch153 <AT> gentoo <DOT> org>
CommitDate: Fri Aug 28 03:40:15 2015 +0000
URL:        https://gitweb.gentoo.org/proj/layman.git/commit/?id=794f56f5

Deprecates get_all_info() function

The api function get_all_info() is being deprecated as it was much
slower than the get_info_str() function and was no longer used in
layman's code. The only instance found making use of it was older test
code which has been changed to also use the get_info_str() function.

external.py: Deprecates the get_all_info() function and adds multiple
owner testing compatibility.
api.py: Removes the get_all_info() function.
cli.py: Removes commented out use of get_all_info() function.
global-overlays.json: Changes structure of 'owner' attribute to reflect
changes for multiple owner support.

 layman/api.py                               | 69 -----------------------------
 layman/cli.py                               |  6 ---
 layman/tests/external.py                    | 40 ++++++-----------
 layman/tests/testfiles/global-overlays.json | 12 +++--
 4 files changed, 22 insertions(+), 105 deletions(-)

diff --git a/layman/api.py b/layman/api.py
index 0718dce..20fe402 100755
--- a/layman/api.py
+++ b/layman/api.py
@@ -237,75 +237,6 @@ class LaymanAPI(object):
         return True
 
 
-    def get_all_info(self, repos, local=False):
-        """retrieves the recorded information about the repo(s)
-        specified by repo-id
-
-        @type repos: list of strings or string
-        @param repos: ['repo-id1', ...] or 'repo-id'
-        @rtype list of tuples [(str, bool, bool),...]
-        @return: dictionary of dictionaries
-        {'ovl1':
-            {'name': str,
-            'owner_name': str,
-            'owner_email': str,
-            ' homepage': str,
-            'description': str,
-            'src_uris': list of str ['uri1',...]
-            'src_type': str,
-            'priority': int,
-            'quality': str
-            'status':,
-            'official': bool,
-            'supported': bool,
-            },
-        'ovl2': {...}
-        }
-        """
-
-        repos = self._check_repo_type(repos, "get_info")
-        result = {}
-
-        if local:
-            db = self._get_installed_db()
-        else:
-            db = self._get_remote_db()
-
-        for ovl in repos:
-            if not self.is_repo(ovl):
-                self.output.error(UnknownOverlayMessage(ovl))
-                result[ovl] = ('', False, False)
-                continue
-            try:
-                overlay = db.select(ovl)
-            except UnknownOverlayException as error:
-                self._error(error)
-                result[ovl] = ('', False, False)
-            else:
-                result[ovl] = {
-                    'name': overlay.name,
-                    'owner_name': overlay.owner_name,
-                    'owner_email': overlay.owner_email,
-                    'homepage': overlay.homepage,
-                    'irc': overlay.irc,
-                    'description': [e for e in overlay.descriptions],
-                    'feeds': overlay.feeds,
-                    'sources': [(e.src, e.type, e.branch) \
-                        for e in overlay.sources],
-                    #'src_uris': [e.src for e in overlay.sources],
-                    'src_uris': overlay.source_uris(),
-                    'src_types': overlay.source_types(),
-                    #'src_types': [e.type for e in overlay.sources],
-                    'priority': overlay.priority,
-                    'quality': overlay.quality,
-                    'status': overlay.status,
-                    'official': overlay.is_official(),
-                    'supported': overlay.is_supported(),
-                    }
-
-        return result
-
-
     def get_info_str(self, repos, local=True, verbose=False, width=0):
         """retrieves the string representation of the recorded information
         about the repo(s) specified by ovl

diff --git a/layman/cli.py b/layman/cli.py
index bb9ea6f..86d6e70 100644
--- a/layman/cli.py
+++ b/layman/cli.py
@@ -381,17 +381,11 @@ class Main(object):
         self.output.debug('Printing installed overlays.', 6)
         list_printer = ListPrinter(self.config)
 
-        #
-        # fast way
         info = self.api.get_info_list(verbose=self.config['verbose'],
                                       width=list_printer.width)
         #self.output.debug('CLI: ListLocal() info = %s' % len(info), 4)
         #self.output.debug('\n'.join([ str(x) for x in info]), 4)
         list_printer.print_shortlist(info, complain=True)
-        #
-        # slow way
-        #info = self.api.get_all_info(self.api.get_installed(), local=True)
-        #list_printer.print_fulldict(info, complain=_complain)
 
         # blank newline  -- no " *"
         self.output.notice('')

diff --git a/layman/tests/external.py b/layman/tests/external.py
index f61d4b6..f2b18cd 100755
--- a/layman/tests/external.py
+++ b/layman/tests/external.py
@@ -427,6 +427,7 @@ class FetchRemoteList(unittest.TestCase):
         my_opts = {
                    'overlays': ['file://'\
                                 + HERE + '/testfiles/global-overlays.xml'],
+                   'db_type': 'xml',
                    'cache': cache,
                    'nocheck': 'yes',
                    'proxy': None,
@@ -441,7 +442,9 @@ class FetchRemoteList(unittest.TestCase):
         filename = api._get_remote_db().filepath(config['overlays']) + '.xml'
 
         with fileopen(filename, 'r') as b:
-            self.assertEqual(b.readlines()[19], '      A collection of ebuilds 
from Gunnar Wrobel [wro...@gentoo.org].\n')
+            description = b.readlines()[19]
+            self.assertEqual(description, '      A collection of ebuilds from 
'\
+                                          'Gunnar Wrobel 
[wro...@gentoo.org].\n')
             for line in b.readlines():
                 print(line, end='')
 
@@ -449,29 +452,16 @@ class FetchRemoteList(unittest.TestCase):
         available = api.get_available()
         self.assertEqual(available, ['wrobel', 'wrobel-stable'])
 
-        # Test the info of an overlay.
-        all_info = api.get_all_info('wrobel')
-
-        test_info = {'status': 'official', 'owner_name': None,
-                     'description': ['Test'], 'src_uris':
-                     ['https://overlays.gentoo.org/svn/dev/wrobel'],
-                     'owner_email': 'nob...@gentoo.org', 'sources':
-                     [('https://overlays.gentoo.org/svn/dev/wrobel',
-                     'Subversion', None)], 'quality': 'experimental', 'name':
-                     'wrobel', 'supported': True, 'src_types': ['Subversion'],
-                     'official': True, 'priority': 10, 'feeds': [],
-                     'irc': None, 'homepage': None}
-        info = all_info['wrobel']
-        info['src_uris'] = [e for e in info['src_uris']]
-        info['src_types'] = [e for e in info['src_types']]
         
-        self.assertEqual(info, test_info)
+        # Test the info of an overlay.
+        info = api.get_info_str(['wrobel'], verbose=True, local=False)
+        test_info = 'wrobel\n~~~~~~\nSource  : https://overlays.gentoo.org'\
+                    '/svn/dev/wrobel\nContact : nob...@gentoo.org\nType    '\
+                    ': Subversion; Priority: 10\nQuality : experimental\n\n'\
+                    'Description:\n  Test\n'
 
-        self.assertEqual(info['status'], 'official')
-        self.assertEqual(info['description'], ['Test'])
-        sources = [('https://overlays.gentoo.org/svn/dev/wrobel', 'Subversion',
-                    None)]
-        self.assertEqual(info['sources'], sources)
+        info = info['wrobel'][0].decode('utf-8')
+        self.assertEqual(info, test_info)
 
         os.unlink(filename)
         shutil.rmtree(tmpdir)
@@ -523,8 +513,7 @@ class MakeOverlayXML(unittest.TestCase):
         ovl_dict = {
                     'name': 'wrobel',
                     'description': ['Test'],
-                    'owner_name': 'nobody',
-                    'owner_email': 'nob...@gentoo.org',
+                    'owner': [{'name': 'nobody', 'email': 
'nob...@gentoo.org'}],
                     'status': 'official',
                     'source': [['https://overlays.gentoo.org/svn/dev/wrobel',
                                  'svn', '']],
@@ -555,13 +544,12 @@ class OverlayObjTest(unittest.TestCase):
         document = ET.parse(HERE + '/testfiles/global-overlays.xml')
         overlays = document.findall('overlay') + document.findall('repo')
         output = Message()
-
         ovl_a = Overlay({'output': output, 'db_type': 'xml'}, xml=overlays[0])
         self.assertEqual(ovl_a.name, 'wrobel')
         self.assertEqual(ovl_a.is_official(), True)
         url = ['https://overlays.gentoo.org/svn/dev/wrobel']
         self.assertEqual(list(ovl_a.source_uris()), url)
-        self.assertEqual(ovl_a.owner_email, 'nob...@gentoo.org')
+        self.assertEqual(ovl_a.owners[0]['email'], 'nob...@gentoo.org')
         self.assertEqual(ovl_a.descriptions, ['Test'])
         self.assertEqual(ovl_a.priority, 10)
 

diff --git a/layman/tests/testfiles/global-overlays.json 
b/layman/tests/testfiles/global-overlays.json
index 53267cf..6ff4f45 100644
--- a/layman/tests/testfiles/global-overlays.json
+++ b/layman/tests/testfiles/global-overlays.json
@@ -14,10 +14,12 @@
       ],
       "homepage": "https://github.com/twitch153/ebuilds";,
       "name": "twitch153",
-      "owner": {
+      "owner": [
+        {
         "email": "twitch...@gentoo.org",
         "name": "Devan Franchini"
-      },
+        }
+      ],
       "source": [
         {
           "#text": "git://github.com/twitch153/ebuilds.git",
@@ -30,9 +32,11 @@
         "A collection of ebuilds from Gunnar Wrobel [wro...@gentoo.org]."
       ],
       "name": "wrobel-stable",
-      "owner": {
+      "owner": [
+        {
         "email": "nob...@gentoo.org"
-      },
+        }
+       ],
       "source": [
         {
           "#text": "rsync://gunnarwrobel.de/wrobel-stable",

Reply via email to