8000 GitHub - smahm006-udemy/ueats: CLI for pytest course · GitHub
[go: up one dir, main page]

Skip to content
smahm006-udemyPublic

About

CLI for pytest course

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Ueats CLI

Ueats is a command-line food delivery simulation used throughout the Pytest Testing Course.
It provides a fully functional CLI for managing users, restaurants, menus, orders, deliveries, and more.

Students will use this CLI to write automated tests, validate workflows, and learn real-world pytest concepts.


Features

Ueats CLI allows you to:

  • Create and manage users
  • Manage user wallets
  • Create restaurants and menus
  • Place and cancel orders
  • Simulate restaurant preparation
  • Simulate delivery
  • Manage database setup and teardown

Installation

This CLI is intended to be used inside the course project.

pip install -e .

Then run:

ueats --help

Command Structure

ueats <command> <subcommand> [arguments]

Example:

ueats user add "John" "New York"

Database Commands

Setup Database

ueats database setup

Teardown Database

ueats database teardown

List Database

ueats database list

List specific tables:

ueats database list -t users restaurants orders

User Commands

Add User

ueats user add <user_name> <user_address>

Example:

ueats user add "John" "New York"

Rename User

ueats user rename <current_name> <new_name>

Remove User

ueats user remove <user_name>

Wallet Commands

Deposit

ueats wallet deposit <user_name> <amount>

Example:

ueats wallet deposit John 50

Withdraw

ueats wallet withdraw <user_name> <amount>

Restaurant Commands

Add Restaurant

ueats restaurant add <restaurant_name> <address>

Remove Restaurant

ueats restaurant remove <restaurant_name>

Rename Restaurant

ueats restaurant rename <current_name> <new_name>

Prepare Order

ueats restaurant prepare <restaurant_name> <order_id>

Menu Commands

Add Menu Item

ueats menu add <restaurant> <item> <price> <count> <prep_time>

Example:

ueats menu add PizzaPlace Pizza 10 5 3

Preparation time must be between 1-10 seconds.


Update Menu Item

ueats menu update <restaurant> <item> <price> <count> <prep_time>

Remove Menu Item

ueats menu remove <restaurant> <item>

Rename Menu Item

ueats menu rename <restaurant> <current_name> <new_name>

Order Commands

Place Order

ueats order place <user> <restaurant> <item>

Example:

ueats order place John PizzaPlace Pizza

Cancel Order

ueats order cancel <order_id>

Order History

ueats order history <user> <restaurant>

Delivery Commands

Start Delivery

ueats delivery start <order_id> <delivery_time>

Delivery time must be between 1-10 seconds.

Delivery Time

ueats delivery time <user> <restaurant>

Example Workflow

ueats database setup

ueats user add John "New York"
ueats wallet deposit John 100

ueats restaurant add PizzaPlace "Downtown"
ueats menu add PizzaPlace Pizza 10 5 2

ueats order place John PizzaPlace Pizza
ueats restaurant prepare PizzaPlace 1

ueats delivery start 1 3

Output Format

Ueats CLI returns structured JSON responses for easy testing:

Example:

{
  "status": 0,
  "data": {},
  "error": ""
}

This makes the CLI ideal for pytest automation.


Course Purpose

This CLI is intentionally designed to:

  • Simulate real systems
  • Practice CLI testing
  • Learn pytest fixtures
  • Test workflows
  • Validate state transitions

Students will write tests against Ueats throughout the course.


Help

To see all commands:

ueats --help

To see command help:

ueats user --help

License

This project is part of the course material and intended for educational use.

About

CLI for pytest course

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

0