test_abbr.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env python3
  2. """
  3. Bench command to test customer abbreviation generation
  4. Usage: bench --site <site> test-abbr
  5. """
  6. import click
  7. import frappe
  8. from frappe import _
  9. @click.command('test-abbr')
  10. def test_abbr():
  11. """Test customer abbreviation generation"""
  12. try:
  13. # Import and run the test
  14. from upsystem.customer_abbr import (
  15. _get_base_abbreviation,
  16. _generate_unique_abbreviation,
  17. _is_abbreviation_unique
  18. )
  19. click.echo("Testing customer abbreviation generation...")
  20. # Test base abbreviation generation
  21. test_cases = [
  22. ("ACME Corporation", "AC"),
  23. ("Microsoft Inc", "MI"),
  24. ("Apple", "AP"),
  25. ("IBM", "IB"),
  26. ("A", "AC"),
  27. ("", "C")
  28. ]
  29. click.echo("\n1. Testing base abbreviation generation:")
  30. for customer_name, expected in test_cases:
  31. result = _get_base_abbreviation(customer_name)
  32. status = "✓" if result == expected else "✗"
  33. click.echo(f" {status} '{customer_name}' -> '{result}' (expected: '{expected}')")
  34. # Test unique abbreviation generation
  35. click.echo("\n2. Testing unique abbreviation generation:")
  36. test_base = "AC"
  37. result = _generate_unique_abbreviation(test_base, "test_customer")
  38. click.echo(f" Base '{test_base}' -> Unique '{result}'")
  39. # Test uniqueness check
  40. click.echo("\n3. Testing uniqueness check:")
  41. is_unique = _is_abbreviation_unique("TEST", "current_customer")
  42. click.echo(f" 'TEST' is unique: {is_unique}")
  43. click.echo("\nTest completed successfully!")
  44. except Exception as e:
  45. click.echo(f"Error during testing: {str(e)}")
  46. frappe.log_error(f"Test abbreviation error: {str(e)}")
  47. if __name__ == '__main__':
  48. test_abbr()