[pass] [PATCH] Substitute empty string for None

Andrew Spiers andrew at andrewspiers.net
Sun Jun 22 15:09:56 CEST 2014


If keepassx2pass.py is given an xml file containing passwords with an empty
title, like <title></title>, ElementTree.text returns None. This commit
substitutes an empty string; which will produce a password with name '_',
instead of raising AtttributeError, as shown in this exception::

    Traceback (most recent call last):
      File "contrib/importers/keepassx2pass.py", line 80, in <module>
        main(sys.argv[1])
      File "contrib/importers/keepassx2pass.py", line 77, in main
        import_group(group)
      File "contrib/importers/keepassx2pass.py", line 71, in import_group
        import_entry(entry, npath)
      File "contrib/importers/keepassx2pass.py", line 58, in import_entry
        print "Importing " + path_for(element, path)
      File "contrib/importers/keepassx2pass.py", line 37, in path_for
        title = cleanTitle(space_to_camelcase(element.find('title').text))
      File "contrib/importers/keepassx2pass.py", line 16, in space_to_camelcase
        for word in value.split(" "):
    AttributeError: 'NoneType' object has no attribute 'split'
---
 contrib/importers/keepassx2pass.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/contrib/importers/keepassx2pass.py b/contrib/importers/keepassx2pass.py
index 532b8d0..5bcdcd2 100755
--- a/contrib/importers/keepassx2pass.py
+++ b/contrib/importers/keepassx2pass.py
@@ -34,7 +34,10 @@ def cleanTitle(title):
 
 def path_for(element, path=''):
     """ Generate path name from elements title and current path """
-    title = cleanTitle(space_to_camelcase(element.find('title').text))
+    title_text = element.find('title').text
+    if title_text is None:
+        title_text = ''
+    title = cleanTitle(space_to_camelcase(title_text))
     return '/'.join([path, title])
 
 def password_data(element):
-- 
1.9.1



More information about the Password-Store mailing list