Skip to main content
Glama
test_config_overrides.cpython-313-pytest-8.3.5.pyc11.8 kB
� �&hs��v�SSKrSSKJs Jr SSKrSSKrSSKJ r J r SSK r Sr Sr SrSrSrSrS rS rg) �N)�_apply_env_overrides� load_configc�t�SS0nS[RS'[U5nUSnSo2U:HoD(do[R"SU4SX#45[R "U5[R "U5S.-nSS U0-n[ [R"U55eS =n=pC[RS g ) z(Test basic environment variable override�key�value� new_value�KEY��==�z%(py1)s == %(py4)s��py1�py4�assert %(py6)s�py6N��os�environr� @pytest_ar�_call_reprcompare� _saferepr�AssertionError�_format_explanation��config�result� @py_assert0� @py_assert3� @py_assert2� @py_format5� @py_format7s �;/home/steve/projects/kvm-mcp/tests/test_config_overrides.py�test_basic_env_overrider#s}���W� �F�#�B�J�J�u�� !�&� )�F� �%�=�'�K�'�K� '�'�'�'�'�=�'�'�'�=�'�'�'�K�'�'�'�'�'�'�'� � � �5��c�~�SSS00nS[RS'[U5nUSSnSo2U:HoD(do[R"SU4SX#45[R "U5[R "U5S.-nS S U0-n[ [R"U55eS =n=pC[RS g ) z)Test nested environment variable override�parent�childrr� PARENT_CHILDr r r rrNrrs r"�test_nested_env_overrider)s�����'�*� +�F�!,�B�J�J�~�� !�&� )�F� �(� �G� $�3� �3� � 3�3�3�3�3� $�3�3�3� $�3�3�3� �3�3�3�3�3�3�3� � � �>�"r$c���SSSSS.n[RRSSSS S .5 [U5nUS nS o2ULoD(do[R "S U4SX#45[R "U5[R "U5S.-nSSU0-n[[R"U55eS=n=pCUSnSo2U:HoD(do[R "SU4SX#45[R "U5[R "U5S.-nSSU0-n[[R"U55eS=n=pCUSnSo2U:HoD(do[R "SU4SX#45[R "U5[R "U5S.-nSSU0-n[[R"U55eS=n=pCUSnS o2U:HoD(do[R "SU4SX#45[R "U5[R "U5S.-nSSU0-n[[R"U55eS=n=pCS Hn[RU M g)z-Test type conversion in environment variablesT�*���Q� @�string)�bool_val�int_val� float_val�str_val�false�100z2.71� new_string)�BOOL_VAL�INT_VAL� FLOAT_VAL�STR_VALr.F��is�z%(py1)s is %(py4)sr rrNr/�dr r r0g�G�z�@r1� rr�updaterrrrrr�rrrrrr r!rs r"�test_type_conversionr@s������� �F��J�J������� ��"�&� )�F� �*� �&��&�� &�&�&�&�&� �&�&�&� �&�&�&��&�&�&�&�&�&�&� �)� �#��#�� #�#�#�#�#� �#�#�#� �#�#�#��#�#�#�#�#�#�#� �+� �&�$�&�$� &�&�&�&�&� �&�&�&� �&�&�&�$�&�&�&�&�&�&�&� �)� �,� �,� � ,�,�,�,�,� �,�,�,� �,�,�,� �,�,�,�,�,�,�,�?�� �J�J�s�O�?r$c��SSSS.n[RRSSSS.5 [U5nUS nSo2ULoD(do[R "S U4S X#45[R "U5[R "U5S .-nS SU0-n[[R"U55eS=n=pCUSnSo2U:HoD(do[R "SU4SX#45[R "U5[R "U5S .-nS SU0-n[[R"U55eS=n=pCUSnSo2U:HoD(do[R "SU4SX#45[R "U5[R "U5S .-nS SU0-n[[R"U55eS=n=pCSHn[RU M g)z)Test handling of invalid type conversionsTr+r,)r.r/r0�invalid� not_a_number� not_a_float)r5r6r7r.r9r;r rrNr/r r r0r=r?s r"�test_invalid_conversionrE0sI������F� �J�J����!�"��� "�&� )�F� �*� �%��%�� %�%�%�%�%� �%�%�%� �%�%�%��%�%�%�%�%�%�%� �)� �"��"�� "�"�"�"�"� �"�"�"� �"�"�"��"�"�"�"�"�"�"� �+� �&�$�&�$� &�&�&�&�&� �&�&�&� �&�&�&�$�&�&�&�&�&�&�&�4�� �J�J�s�O�4r$c��SSS.nS[RS'[U5nUSnSo2U:HoD(do[R"SU4SX#45[R "U5[R "U5S .-nS S U0-n[ [R"U55eS =n=pCUS nSo2U:HoD(do[R"SU4SX#45[R "U5[R "U5S .-nS S U0-n[ [R"U55eS =n=pC[RS g )z7Test handling of empty strings in environment variables�originalr+)r1r/�r8r1r r r rrNr/rrs r"�test_empty_string_handlingrIHs������F� �B�J�J�y�� !�&� )�F� �)� �"��"�� "�"�"�"�"� �"�"�"� �"�"�"��"�"�"�"�"�"�"� �)� �"��"�� "�"�"�"�"� �"�"�"� �"�"�"��"�"�"�"�"�"�"� � � �9�r$c�^�UR[RSU4Sj5 UR[RSU4Sj5 [R"[ 5 [ 5 SSS5 g!,(df  g=f)z$Test handling of missing config file�dirnamec�>�[T5$�N��str��x�tmp_paths �r"�<lambda>�*test_missing_config_file.<locals>.<lambda>X� ���c�(�mr$�abspathc�>�[T5$rMrNrPs �r"rSrTYrUr$N)�setattrr�path�pytest�raises�FileNotFoundErrorr)rR� monkeypatchs` r"�test_missing_config_filer^UsQ����������,C�D��������,C�D� ���(� )�� � *� )� )�s �& A:�: Bc�^�UR[RSU4Sj5 UR[RSU4Sj5 TS- n[US5nUR S5 SSS5 [ R "[R5 [5 SSS5 g!,(df  NF=f!,(df  g=f) z,Test handling of invalid JSON in config filerKc�>�[T5$rMrNrPs �r"rS�#test_invalid_json.<locals>.<lambda>arUr$rVc�>�[T5$rMrNrPs �r"rSrabrUr$� config.json�wz invalid jsonN) rXrrY�open�writerZr[�json�JSONDecodeErrorr)rRr]� config_path�fs` r"�test_invalid_jsonrk^s�����������,C�D��������,C�D��]�*�K� �k�3� �1� ����� � ���t�+�+� ,�� � -� ,� � �� -� ,�s�B/� C�/ B=� Cc�2^�UR[RSU4Sj5 UR[RSU4Sj5 SSSSS S S S .00nTS - n[US5n[R "X$5 SSS5 S[R S'S[R S'[5nUSSSnSovU:Ho�(do[R"SU4SXg45[R"U5[R"U5S.-n SSU 0-n [[R"U 55eS=n=p�USSSnSovU:Ho�(do[R"SU4SXg45[R"U5[R"U5S.-n SSU 0-n [[R"U 55eS=n=p�USSSnS ovU:Ho�(do[R"SU4SXg45[R"U5[R"U5S.-n SSU 0-n [[R"U 55eS=n=p�USSSnS ovU:Ho�(do[R"SU4SXg45[R"U5[R"U5S.-n SSU 0-n [[R"U 55eS=n=p�[R S [R S g!,(df  GN�=f)z>Test configuration loading with environment variable overridesrKc�>�[T5$rMrNrPs �r"rS�0test_config_with_env_overrides.<locals>.<lambda>nrUr$rVc�>�[T5$rMrNrPs �r"rSrnorUr$�vm�ignitionztest-vm�core�UTCz en_US.UTF-8z~/.ssh/id_rsa.pub)�default_hostname� default_user�default_timezone�default_locale�default_ssh_keyrcrdNz override-vm�VM_IGNITION_DEFAULT_HOSTNAME�admin�VM_IGNITION_DEFAULT_USERrtr r r rrrurvrw) rXrrYrerg�dumprrrrrrr) rRr]�config_contentrirjrrrrr r!s ` r"�test_config_with_env_overridesr~ks7����������,C�D��������,C�D� � �$-� &�$)�"/�#6� � � �N��]�*�K� �k�3� �1� � � �.�$� �2?�B�J�J�-�.�-4�B�J�J�)�*� �]�F� �$�<� � #�$6� 7�H�=�H�=� H�H�H�H�H� 7�H�H�H� 7�H�H�H�=�H�H�H�H�H�H�H� �$�<� � #�N� 3�>�w�>�w� >�>�>�>�>� 3�>�>�>� 3�>�>�>�w�>�>�>�>�>�>�>� �$�<� � #�$6� 7�@�5�@�5� @�@�@�@�@� 7�@�@�@� 7�@�@�@�5�@�@�@�@�@�@�@� �$�<� � #�$4� 5�F��F�� F�F�F�F�F� 5�F�F�F� 5�F�F�F��F�F�F�F�F�F�F� � � �1�2� � � �-�.� � �s �)L� L)�builtins� @py_builtins�_pytest.assertion.rewrite� assertion�rewriterrrZ�kvm_mcp_serverrrrgr#r)r@rErIr^rkr~�r$r"�<module>r�s=���� � �<� ��#��4�0 �� �"/r$

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/steveydevey/kvm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server