Coverage for amazonorders/cli.py: 60.87%
46 statements
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-12 15:20 +0000
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-12 15:20 +0000
1import datetime
2import os
4import click
6from amazonorders.exception import AmazonOrdersError
7from amazonorders.orders import AmazonOrders
9from amazonorders.session import AmazonSession
11__author__ = "Alex Laird"
12__copyright__ = "Copyright 2024, Alex Laird"
13__version__ = "0.0.3"
16@click.group(invoke_without_command=True)
17@click.option('--username', default=os.environ.get("AMAZON_USERNAME"), help="An Amazon username.")
18@click.option('--password', default=os.environ.get("AMAZON_PASSWORD"), help="An Amazon password.")
19@click.pass_context
20def amazon_orders(ctx, **kwargs):
21 ctx.ensure_object(dict)
22 for key, value in kwargs.items():
23 if value:
24 ctx.obj[key] = value
26 if not kwargs["username"] or not kwargs["password"]:
27 ctx.fail("Must provide but --username and --password for Amazon.")
29 ctx.obj["amazon_session"] = AmazonSession(kwargs["username"], kwargs["password"])
32@amazon_orders.command()
33@click.pass_context
34@click.option('--year', default=datetime.date.today().year, help="The year for which to get order history.")
35@click.option('--full-details', is_flag=True, default=False,
36 help="True if the full details should be retreived for each order.")
37def history(ctx, **kwargs):
38 amazon_session = ctx.obj["amazon_session"]
39 amazon_session.login()
41 amazon_orders = AmazonOrders(amazon_session,
42 print_output=True)
44 try:
45 amazon_orders.get_order_history(year=kwargs["year"],
46 full_details=kwargs["full_details"])
47 except AmazonOrdersError as e:
48 ctx.fail(str(e))
50 amazon_session.close()
53@amazon_orders.command()
54@click.pass_context
55@click.argument('order_id')
56def order(ctx, order_id):
57 amazon_session = ctx.obj["amazon_session"]
58 amazon_session.login()
60 amazon_orders = AmazonOrders(amazon_session,
61 print_output=True)
63 try:
64 amazon_orders.get_order(order_id)
65 except AmazonOrdersError as e:
66 ctx.fail(str(e))
68 amazon_session.close()
71if __name__ == "__main__":
72 amazon_orders(obj={})