openai-client-cli 0.1.1

OpenAI API client CLI
Documentation
use openai_client_cli::{entry::*, loaders::*, traits::*};
use std::{env, io::stderr};
use anyhow::Result;

#[test]
fn fetch() -> Result<()> {
  tracing_subscriber::fmt()
    .without_time()
    .with_file(true)
    .with_line_number(true)
    .with_max_level(tracing::Level::DEBUG)
    .with_target(false)
    .with_writer(stderr)
    .init();

  env::set_current_dir("tests")?;
  env::set_var("OPENAI_ORG_KEY", "org-12345678901234567Correct");

  let command = "openai /v1/models -v";
  let mut entry = Entry::parse_from(command.split(' '));
  let key = Key::fetch(&entry)?;
  let organization = Organization::fetch(&entry);
  let output = Output::fetch(&entry)?;
  let parameter = Parameter::fetch(&entry); // `parameter` should be fetched before `method`
  entry._parameter = parameter.ok();
  let path = Path::fetch(&entry)?;
  let method = Method::fetch(&entry)?;
  
  assert_eq!(organization.is_ok(), true);
  assert_eq!(entry._parameter.is_some(), true);

  assert_eq!(key.value_ref(), "sk-abcdeABCDE1234567890T3BlbkFJ1234567890abcdeABCDE");
  assert_eq!(method.value_ref(), "POST");
  assert_eq!(organization.unwrap().value_ref(), "org-12345678901234567Correct");
  assert_eq!(output.is_file(), false);
  assert_eq!(path.value_ref(), "models");

  Ok(())
}