|
- import unittest
- import pexpect
- import signal
- import time
-
- import sys
-
- import argparse
- from lesspass.cli import range_type
-
- class TestFunctional(unittest.TestCase):
- def test_length_below_the_minimum(self):
- p = pexpect.spawn(
- "python3 lesspass/core.py site login masterpassword --lowercase --digits --length 2"
- )
- output = p.read().decode()
-
- self.assertTrue("error: argument -L/--length: 2 is out of range, choose in [5-35]" in output)
-
- def test_length_range_type(self):
- self.assertEqual(range_type('5'), 5)
- self.assertEqual(range_type('35'), 35)
- with self.assertRaises(argparse.ArgumentTypeError):
- range_type('2')
-
- def test_exclude(self):
- p = pexpect.spawn(
- 'python3 lesspass/core.py site login masterpassword --exclude "!@$*+-8"'
- )
- output = p.read().decode()
- for c in "!@$*+-8":
- self.assertTrue(c not in output)
-
- def test_exclude(self):
- p = pexpect.spawn(
- 'python3 lesspass/core.py site login masterpassword -d -L6 --exclude "0123456789"'
- )
- output = p.read().decode()
-
- self.assertTrue("error: you can't exclude all chars available" in output)
|