Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_set_and_get_fields(self):
time = datetime.now().replace(microsecond=0)
changed_time = time + timedelta(hours=9)
changed_string = 'changed_'
entry = Entry(
'title',
'username',
'password',
url='url',
notes='notes',
tags='tags',
expires=True,
expiry_time=time,
icon=icons.KEY,
kp=self.kp
)
entry.title = changed_string + 'title'
entry.username = changed_string + 'username'
entry.password = changed_string + 'password'
entry.url = changed_string + 'url'
entry.notes = changed_string + 'notes'
def test_find_entries_by_uuid(self):
uu = uuid.UUID('cc5f7ecd-2a00-48ca-9621-c222a347b0bb')
results = self.kp.find_entries_by_uuid(uu)[0]
self.assertIsInstance(results, Entry)
self.assertEqual(uu, results.uuid)
self.assertEqual('foobar_user', results.username)
def test_expired_datetime_offset(self):
"""Test for https://github.com/pschmitt/pykeepass/issues/115"""
future_time = datetime.now() + timedelta(days=1)
past_time = datetime.now() - timedelta(days=1)
entry = Entry(
'title',
'username',
'password',
expires=True,
expiry_time=future_time,
kp=self.kp
)
self.assertFalse(entry.expired)
entry.expiry_time = past_time
self.assertTrue(entry.expired)
def _xpath(self, xpath_str, tree=None, first=False, history=False,
cast=False, **kwargs):
if tree is None:
tree = self.tree
logger.debug(xpath_str)
elements = tree.xpath(
xpath_str, namespaces={'re': 'http://exslt.org/regular-expressions'}
)
res = []
for e in elements:
if history or e.getparent().tag != 'History':
if cast:
if e.tag == 'Entry':
res.append(Entry(element=e, kp=self))
elif e.tag == 'Group':
res.append(Group(element=e, kp=self))
elif e.tag == 'Binary' and e.getparent().tag == 'Entry':
res.append(Attachment(element=e, kp=self))
else:
raise Exception('Could not cast element {}'.format(e))
else:
res.append(e)
# return first object in list or None
if first:
res = res[0] if res else None
return res
import pykeepass
from pykeepass import PyKeePass
import pykeepass.entry
from pykeepass.entry import Entry
class ExtendedEntry(Entry):
name = ""
username = ""
password = ""
url = ""
notes = ""
icon = ""
group_uuid = ""
uuid = ""
def __init__(self, name, username, password, url, notes, icon, group_uuid, uuid):
self.name = name
self.username = username
self.password = password
self.url = url
self.notes = notes
self.icon = icon
title=title,
username=username,
first=True,
group=destination_group,
recursive=False
)
if entries and not force_creation:
raise Exception(
'An entry "{}" already exists in "{}"'.format(
title, destination_group
)
)
else:
logger.debug('Creating a new entry')
entry = Entry(
title=title,
username=username,
password=password,
notes=notes,
url=url,
tags=tags,
expires=True if expiry_time else False,
expiry_time=expiry_time,
icon=icon,
kp=self
)
destination_group.append(entry)
return entry