fn parse_cross_python_version()

in include/pyo3/pyo3-build-config/src/impl_.rs [2766:2814]


    fn parse_cross_python_version() {
        let env_vars = CrossCompileEnvVars {
            pyo3_cross: None,
            pyo3_cross_lib_dir: None,
            pyo3_cross_python_version: Some("3.9".into()),
            pyo3_cross_python_implementation: None,
        };

        assert_eq!(
            env_vars.parse_version().unwrap(),
            (Some(PythonVersion { major: 3, minor: 9 }), None),
        );

        let env_vars = CrossCompileEnvVars {
            pyo3_cross: None,
            pyo3_cross_lib_dir: None,
            pyo3_cross_python_version: None,
            pyo3_cross_python_implementation: None,
        };

        assert_eq!(env_vars.parse_version().unwrap(), (None, None));

        let env_vars = CrossCompileEnvVars {
            pyo3_cross: None,
            pyo3_cross_lib_dir: None,
            pyo3_cross_python_version: Some("3.13t".into()),
            pyo3_cross_python_implementation: None,
        };

        assert_eq!(
            env_vars.parse_version().unwrap(),
            (
                Some(PythonVersion {
                    major: 3,
                    minor: 13
                }),
                Some("t".into())
            ),
        );

        let env_vars = CrossCompileEnvVars {
            pyo3_cross: None,
            pyo3_cross_lib_dir: None,
            pyo3_cross_python_version: Some("100".into()),
            pyo3_cross_python_implementation: None,
        };

        assert!(env_vars.parse_version().is_err());
    }