Skip to main content
Glama
test_json_rpc.cpython-313-pytest-8.3.5.pyc15.4 kB
� �yh����SSKrSSKJs Jr SSKrSSKJrJ r SSK J r SSK r \RRS5r\RRS5r\RRS5r\RRS5r\RRS5r\RRS 5rg) �N)�patch� MagicMock)�handle_requestc��r# �[S5nXlSSS0SS0S.SS .n[[R"U55IS hv�N nUS nSoTU:Hof(do[ R "S U4S XE45[ R"U5[ R"U5S.-nSSU0-n[[ R"U55eS =n=peUSnSoTU:Hof(do[ R "S U4S XE45[ R"U5[ R"U5S.-nSSU0-n[[ R"U55eS =n=peSoDU;of(d�[ R "SU4SXC45[ R"U5S[R"5;d[ R"U5(a[ R"U5OSS.-n SSU 0-n [[ R"U 55eS =pFUSSnSoTU:Hof(do[ R "S U4S XE45[ R"U5[ R"U5S.-nSSU0-n[[ R"U55eS =n=peUSSSnSoTU:Hof(do[ R "S U4S XE45[ R"U5[ R"U5S.-nSSU0-n[[ R"U55eS =n=peS S S 5 g GN�!,(df  g =f7f)z$Test initialization request handlingz libvirt.open�2.0� initializez1.0�namez test-client)�protocolVersion� capabilities� clientInfo���jsonrpc�method�params�idNr��==�z%(py1)s == %(py4)s��py1�py4�assert %(py6)s�py6r�result��in�z%(py1)s in %(py3)s�response�r�py3�assert %(py5)s�py5r � serverInfoz kvm-control) r� return_valuer�json�dumps� @pytest_ar�_call_reprcompare� _saferepr�AssertionError�_format_explanation� @py_builtins�locals�_should_repr_global_name) �mock_libvirt_conn� mock_open�requestr� @py_assert0� @py_assert3� @py_assert2� @py_format5� @py_format7� @py_format4� @py_format6s �3/home/steve/projects/kvm-mcp/tests/test_json_rpc.py�test_initialize_requestr;s��� �~� �)�!2���"�#(� "�%�}�5�� �  ��(�� � �7�(;�<�<��� �"�+�e�+�e�+�+�+�+�+�"�+�+�+�"�+�+�+�e�+�+�+�+�+�+�+���~�"��"��"�"�"�"�"�~�"�"�"�~�"�"�"��"�"�"�"�"�"�"��#�8�#�#�#�#�#�x�#�#�#�x�#�#�#�#�#�#�8�#�#�#�#�8�#�#�#�#�#�#�#���!�"3�4�=��=��=�=�=�=�=�4�=�=�=�4�=�=�=��=�=�=�=�=�=�=���!�,�/��7�H�=�H�=�H�H�H�H�H�7�H�H�H�7�H�H�H�=�H�H�H�H�H�H�H�' � �=� � �s/� L7�6L&�L#�KL&� L7�#L&�& L4�0L7c��# �SSS./n[SUS9 SSS0S .S S .n[[R"U55IS hv�N nUS nSoCU:HoU(do[R "SU4SX445[R "U5[R "U5S.-nSSU0-n[[R"U55eS =n=pTUSnS oCU:HoU(do[R "SU4SX445[R "U5[R "U5S.-nSSU0-n[[R"U55eS =n=pTSo3U;oU(d�[R "SU4SX245[R "U5S[R"5;d[R"U5(a[R "U5OSS.-nSSU0-n [[R"U 55eS =p5USo3U:HoU(d�[R "SU4SX045[R "U5S[R"5;d[R"U5(a[R "U5OSS.-nSSU0-n [[R"U 55eS =p5S S S 5 g GN�!,(df  g =f7f)zTest list_vms request handling�test-vm�running)r �statezkvm_mcp_server.list_vms�r%r� tools/call�list_vms�r � arguments�rNrrrrrrrrrrrr r"r#�z%(py1)s == %(py3)s�mock_vms� rrr&r'r(r)r*r+r,r-r.r/) rGr2rr3r4r5r6r7r8r9s r:�test_list_vms_requestrIs����#�Y�7�8�H� �(�x� @��"�"���� ��(�� � �7�(;�<�<��� �"�+�e�+�e�+�+�+�+�+�"�+�+�+�"�+�+�+�e�+�+�+�+�+�+�+���~�"��"��"�"�"�"�"�~�"�"�"�~�"�"�"��"�"�"�"�"�"�"��#�8�#�#�#�#�#�x�#�#�#�x�#�#�#�#�#�#�8�#�#�#�#�8�#�#�#�#�#�#�#���!�-�X�-�-�-�-�-�!�-�-�-�!�-�-�-�-�-�-�X�-�-�-�-�X�-�-�-�-�-�-�-� A� @�=� A� @�s/�K�-K�K�I9K�: K�K� K�Kc��# �SSS.n[SUS9 SSSS S S S .S .SS.n[[R"U55IShv�N nUSnSoCU:HoU(do[R "SU4SX445[R "U5[R "U5S.-nSSU0-n[[R"U55eS=n=pTUSnSoCU:HoU(do[R "SU4SX445[R "U5[R "U5S.-nSSU0-n[[R"U55eS=n=pTSo3U;oU(d�[R "SU4SX245[R "U5S[R"5;d[R"U5(a[R "U5OSS.-nSSU0-n [[R"U 55eS=p5USo3U:HoU(d�[R "SU4SX045[R "U5S [R"5;d[R"U5(a[R "U5OS S.-nSSU0-n [[R"U 55eS=p5SSS5 gGN�!,(df  g=f7f)!zTest create_vm request handling�successz VM created)�status�messagezkvm_mcp_server.create_vmr@rrA� create_vmr=irE)r �memory�vcpusrC�rNrrrrrrrrrrrr r"r#rF� mock_resultrH) rRr2rr3r4r5r6r7r8r9s r:�test_create_vm_requestrS5s����'�<�@�K� �)� � D��"�#�%�"�����  ��(�� � �7�(;�<�<��� �"�+�e�+�e�+�+�+�+�+�"�+�+�+�"�+�+�+�e�+�+�+�+�+�+�+���~�"��"��"�"�"�"�"�~�"�"�"�~�"�"�"��"�"�"�"�"�"�"��#�8�#�#�#�#�#�x�#�#�#�x�#�#�#�#�#�#�8�#�#�#�#�8�#�#�#�#�#�#�#���!�0�[�0�0�0�0�0�!�0�0�0�!�0�0�0�0�0�0�[�0�0�0�0�[�0�0�0�0�0�0�0�' E� D�=� E� D�s/�K�1K �K�I9K �= K�K � K�Kc��# �SS0SS.n[[R"U55IShv�N nUSnSo2U: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=pCS o"U;oD(d�[R"SU4SX!45[R "U5S[R"5;d[R"U5(a[R "U5OSS.-nSSU0-n[ [R"U55eS=p$US SnSo3*o�U :HoD(do[R"SU4SX)45[R "U5[R "U5S .-nSSU0-n [ [R"U 55eS=n=n=p9So!S So2U;oD(do[R"SU4SX#45[R "U5[R "U5S .-nS S U0-n[ [R"U55eS=n=pCgGN�7f)zTest handling of invalid methodr�invalid_method�rNrrrrrrr�errorrrrr r"r#�codeiY�z%(py1)s == -%(py4)s�assert %(py7)s�py7zMethod not foundrM�z%(py1)s in %(py4)s� rr&r'r(r)r*r+r,r-r.r/� r2rr3r4r5r6r7r8r9� @py_assert5� @py_format8s r:�test_invalid_methodraPs�����"��� �G�$�D�J�J�w�$7�8�8�H� �I� �'�%�'�%� '�'�'�'�'� �'�'�'� �'�'�'�%�'�'�'�'�'�'�'� �D�>��Q��Q� �����>����>����Q�������� ��h� �����7����7�������h�����h�������� �G� �V� $�.��.��.�� .�.�.�.�.� $�.�.�.� $�.�.�.��.�.�.�.�.�.�.� �=�'�!2�9�!=�=�!=� =�=�=�=�=� �=�=�=� �=�=�=�!=�=�=�=�=�=�=�=� 9�s�*L�L�KLc��# �S0SS.n[[R"U55IShv�N nUSnSo2U: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=pCS o"U;oD(d�[R"S U4SX!45[R "U5S[R"5;d[R"U5(a[R "U5OSS.-nSSU0-n[ [R"U55eS=p$US SnSo3*o�U :HoD(do[R"SU4SX)45[R "U5[R "U5S.-nSSU0-n [ [R"U 55eS=n=n=p9So!S So2U;oD(do[R"S U4SX#45[R "U5[R "U5S.-nS S U0-n[ [R"U55eS=n=pCgGN�7f)zTest handling of missing methodr�)rrrNrrrrrrrrWrrrr r"r#rXiXrYrZr[zInvalid RequestrMr\r]r^s r:�test_missing_methodrdas��������G� $�D�J�J�w�$7�8�8�H� �I� �'�%�'�%� '�'�'�'�'� �'�'�'� �'�'�'�%�'�'�'�'�'�'�'� �D�>��Q��Q� �����>����>����Q�������� ��h� �����7����7�������h�����h�������� �G� �V� $�.��.��.�� .�.�.�.�.� $�.�.�.� $�.�.�.��.�.�.�.�.�.�.� �<�� 1�)� <�<� <� <�<�<�<�<� �<�<�<� �<�<�<� <�<�<�<�<�<�<�<� 9�s�)L�L�KLc��p# �[S5IShv�N nUSnSo!U:Ho3(do[R"SU4SX45[R"U5[R"U5S.-nSS U0-n[ [R "U55eS=n=p2US S nS o"*oaU:Ho3(do[R"SU4S X45[R"U5[R"U5S.-nSSU0-n[ [R "U55eS=n=n=p&SoS So!U;o3(do[R"SU4SX45[R"U5[R"U5S.-nSS U0-n[ [R "U55eS=n=p2USnSo!ULo3(do[R"SU4SX45[R"U5[R"U5S.-nSS U0-n[ [R "U55eS=n=p2gGN"7f)zTest handling of invalid JSONz invalid jsonNrrrrrrrrWrXi�rYrZr[z Parse errorrMrr\r)�is)z%(py1)s is %(py4)s)rr(r)r*r+r,) rr3r4r5r6r7r_r9r`s r:�test_invalid_jsonrgqsc���$�N�3�3�H� �I� �'�%�'�%� '�'�'�'�'� �'�'�'� �'�'�'�%�'�'�'�'�'�'�'� �G� �V� $�.��.��.�� .�.�.�.�.� $�.�.�.� $�.�.�.��.�.�.�.�.�.�.� �8�W�-�i�8�8�8� 8�8�8�8�8�=�8�8�8�=�8�8�8�8�8�8�8�8�8�8�8� �D�>�!�T�!�T� !�!�!�!�!�>�!�!�!�>�!�!�!�T�!�!�!�!�!�!�!� 4�s�H6�H3�H"H6)�builtinsr-�_pytest.assertion.rewrite� assertion�rewriter(�pytest� unittest.mockrr�kvm_mcp_serverrr&�mark�asyncior;rIrSrardrg��r:�<module>rss����� �*�)� ������I��I�.�����.��.�,�����1��1�4�����>��>� ����� =�� =������"��"rr

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