| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/usr/bin/env python3
- """
- Comprehensive test for license detection to ensure our fix doesn't break other cases.
- """
- import sys
- import os
- # Add src to path
- sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src'))
- from autusm.metadata import MetadataExtractor
- def test_license_detection():
- """Test license detection with various license texts."""
- extractor = MetadataExtractor()
-
- # Test cases: (description, content, expected_license)
- test_cases = [
- ("LGPL-2.1", """ GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.""", "LGPL-2.1"),
-
- ("GPL-3.0", """ GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.""", "GPL-3.0"),
-
- ("GPL-2.0", """ GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.""", "GPL-2.0"),
-
- ("MIT", """MIT License
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:""", "MIT"),
-
- ("Apache-2.0", """Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION""", "Apache-2.0"),
- ]
-
- print("Testing license detection...")
- all_passed = True
-
- for description, content, expected in test_cases:
- result = extractor._identify_license_type(content)
- status = "✓" if result == expected else "✗"
- print(f"{status} {description}: Expected {expected}, Got {result}")
- if result != expected:
- all_passed = False
-
- if all_passed:
- print("\nAll tests passed!")
- else:
- print("\nSome tests failed!")
- sys.exit(1)
- if __name__ == "__main__":
- test_license_detection()
|