refactor(factories): improve phone number generation logic
refactor(scope): short description
Current Change: refactor(factories): improve phone number generation logic
Description
This merge request refactors the phone number generation logic in the user factory to generate valid Indian phone numbers without formatting characters.
Changes Made
-
Phone Number Format: Changed from
+91 XXXXX XXXXXformat toXXXXXXXXXX(10 digits only) - Validation Improvement: First digit now restricted to valid Indian mobile prefixes (9, 8, 7, 6)
-
Code Formatting: Applied consistent code formatting throughout
user_factory.py - Documentation: Updated README.md to fix docker compose command syntax
Files Modified
-
scripts/factories/user_factory.py- Updated_generate_indian_phone()method -
README.md- Fixed docker compose command documentation
Checklist
-
Code has been refactored for clarity, maintainability, or performance. -
No functional changes have been introduced (phone numbers still generated, just in different format). -
All existing tests are passing. -
Code adheres to project coding standards (PEP 8 formatting applied).
Technical Details
Before
def _generate_indian_phone(self) -> str:
"""Generate Indian phone number in format +91 XXXXX XXXXX."""
number = "".join([str(random.randint(0, 9)) for _ in range(10)])
return f"+91 {number[:5]} {number[5:]}"
After
def _generate_indian_phone(self) -> str:
"""Generate Indian phone number in format XXXXXXXXXX."""
first_digit = str(random.choice([9, 8, 7, 6]))
remaining_digits = "".join([str(random.randint(0, 9)) for _ in range(9)])
number = first_digit + remaining_digits
return number
Benefits
- Database Compatibility: Removes formatting characters that may cause issues with phone number validation
- Realistic Data: First digit restricted to valid Indian mobile prefixes
- Consistency: Matches expected phone number format for authentication endpoints
- Cleaner Code: Improved formatting and readability throughout the factory file
Related Issue(s)
Closes #27 (closed) fix(database): generate unique phone numbers in seed data
Commit
-
Commit Hash:
c51f17a40f1b3051b5abf922ea434dcfc4e96712 -
Branch:
updated-numbers-seeding-database - Commit Message: "Changes in phone numbers generation logic"