Esempio n. 1
0
 def test_alias(self):
     program = Command('list', alias=['ls'])
     program.option('-v, --verbose', 'show more log')
     program.parse(
         'ls -v'
     )
     assert program.verbose
Esempio n. 2
0
def main():
    command = Command('kindlepush',
                      'automatically deliver your docs to your kindle',
                      version=__version__)
    command.option('-c, --count [count]', 'the count of the docs to deliver')

    try:
        with open(os.path.join(sys.path[0], 'kindlepush_config.json')) as f:
            config = json.load(f)
    except IOError:
        sys.exit("Check your config file in {0}".format(sys.path[0]))

    @command.action
    def read(number=config['number']):
        """
        read the log file

        :param number: the count of days
        :option number: -n, --number [number]
        """
        file_path = os.path.join(config['directory'], 'kindlepush.log')
        os.system('tail -n {0} {1}'.format(number, file_path))

    @command.action
    def pending():
        """
        get pending deliveries
        """
        login(config)
        titles = get_pending_deliveries()
        print "Pending Deliveries:"
        for title in titles:
            print '\t{0}'.format(title)

    command.parse()

    logging.basicConfig(
        filename=os.path.join(config['directory'], 'kindlepush.log'),
        level='INFO',
        format='%(asctime)s [%(levelname)s] %(message)s')
    # Disable unwanted log message from the requests library
    requests_log = logging.getLogger("requests")
    requests_log.setLevel(logging.WARNING)

    # Connect to the database lying the directory specified in the config
    database = sqlite3.connect(os.path.join(config['directory'],
                                            'kindlepush.db'))

    # overwrite the value of count if user has specified it
    if command.count:
        config['count'] = command.count

    if not 'read' and 'pending' in sys.argv:
        try:
            login(config)
            deliver_all(get_contents(config), database)
        except KeyError:
            print 'KeyError, check your config file please.'
        except requests.exceptions.ConnectionError:
            print 'Check your network please.'
Esempio n. 3
0
    def test_parse(self):
        program = Command('parse', version='1.0.0')
        program.option('-f', 'force')
        program.option('-v, --verbose', 'show more log')
        program.option('--no-color', 'output without color')
        program.option('-t, --tag <tag>', 'tag name')
        program.option('-s [source]', 'source repo')
        program.option('--key <keyword>', 'keywords')

        program.print_version()
        program.print_help()

        program.parse(
            'parse -f -v --verbose --no-color bar -t tag --key=what'
        )

        assert program.get('-f')
        assert program.verbose
        assert program.tag == 'tag'
        assert program.color is False
        assert program.key == 'what'
Esempio n. 4
0
 def test_as_container(self):
     program = Command('container', version='1.0.0')
     program.option('-f', 'force')
     program.option('-v, --verbose', 'show more log')
     program.option('--no-color', 'output without color')
     program.option('-t, --tag <tag>', 'tag name')
     program.option('-s [source]', 'source repo')
     program.option('--key <keyword>', 'keywords')
     program.parse(
         'container -f -v --verbose --no-color bar -t tag --key=what'
     )
     assert 'verbose' in dict(program)
Esempio n. 5
0
 def test_get_default(self):
     program = Command('get-default')
     program.option('--output [dir]', 'output dir, default: site')
     assert program.output == 'site'
Esempio n. 6
0
 def test_missing_required(self):
     program = Command('missing-required')
     program.option('-o, --output <dir>', 'output directory')
     program.parse('missing-required')
Esempio n. 7
0
 def test_missing_option(self):
     program = Command('missing-option')
     program.option('-o, --output <dir>', 'output directory')
     program.parse('missing-option -o')
Esempio n. 8
0
    def test_parse(self):
        program = Command('foo')
        program.option('-f', 'force')
        program.option('-v, --verbose', 'show more log')
        program.option('--no-color', 'output without color')
        program.option('-t, --tag <tag>', 'tag name')
        program.option('-s <source>', 'source repo')
        program.option('--key <keyword>', 'keywords')

        program.parse(
            'foo -f -v --verbose --no-color bar -t tag --key=what'.split()
        )

        assert program.get('-f')
        assert program.verbose
        assert program.tag == 'tag'
        assert program.color is False
        assert program.keyword == 'what'
Esempio n. 9
0
    def test_parse(self):
        program = Command('parse', version='1.0.0')
        program.option('-f', 'force')
        program.option('-v, --verbose', 'show more log')
        program.option('--no-color', 'output without color')
        program.option('-t, --tag <tag>', 'tag name')
        program.option('-s [source]', 'source repo')
        program.option('--key <keyword>', 'keywords')

        program.print_version()
        program.print_help()

        program.parse('parse -f -v --verbose --no-color bar -t tag --key=what')

        assert program.get('-f')
        assert program.verbose
        assert program.tag == 'tag'
        assert program.color is False
        assert program.key == 'what'
Esempio n. 10
0
 def test_as_container(self):
     program = Command('container', version='1.0.0')
     program.option('-f', 'force')
     program.option('-v, --verbose', 'show more log')
     program.option('--no-color', 'output without color')
     program.option('-t, --tag <tag>', 'tag name')
     program.option('-s [source]', 'source repo')
     program.option('--key <keyword>', 'keywords')
     program.parse(
         'container -f -v --verbose --no-color bar -t tag --key=what')
     assert 'verbose' in dict(program)
Esempio n. 11
0
 def test_get_default(self):
     program = Command('get-default')
     program.option('--output [dir]', 'output dir, default: site')
     assert program.output == 'site'
Esempio n. 12
0
 def test_missing_required(self):
     program = Command('missing-required')
     program.option('-o, --output <dir>', 'output directory')
     program.parse('missing-required')
Esempio n. 13
0
 def test_missing_option(self):
     program = Command('missing-option')
     program.option('-o, --output <dir>', 'output directory')
     program.parse('missing-option -o')