@@ -1642,265 +1642,6 @@ async def test_did_change__basic(self) -> None:
1642
1642
expectations ,
1643
1643
)
1644
1644
1645
- @setup .async_test
1646
- async def test_did_change__with_type_errors (self ) -> None :
1647
- unsaved_file_content = "# some example code"
1648
- tracked_path = Path ("/tracked.py" )
1649
- for telemetry in (
1650
- features .TelemetryAvailability .ENABLED ,
1651
- features .TelemetryAvailability .DISABLED ,
1652
- ):
1653
- querier = server_setup .MockDaemonQuerier (
1654
- mock_type_errors = {
1655
- tracked_path : [
1656
- error .Error (
1657
- line = 1 ,
1658
- column = 1 ,
1659
- stop_line = 2 ,
1660
- stop_column = 2 ,
1661
- path = Path ("/tracked.py" ),
1662
- code = 42 ,
1663
- name = "name" ,
1664
- description = "description" ,
1665
- ),
1666
- ]
1667
- }
1668
- )
1669
- setup = server_setup .create_pyre_language_server_api_setup (
1670
- opened_documents = {
1671
- tracked_path : state .OpenedDocumentState (
1672
- code = unsaved_file_content ,
1673
- )
1674
- },
1675
- querier = querier ,
1676
- server_options = server_setup .create_server_options (
1677
- language_server_features = features .LanguageServerFeatures (
1678
- unsaved_changes = features .UnsavedChangesAvailability .ENABLED ,
1679
- telemetry = telemetry ,
1680
- ),
1681
- ),
1682
- )
1683
- api = setup .api
1684
- output_writer = setup .output_writer
1685
- await api .process_did_change_request (
1686
- parameters = lsp .DidChangeTextDocumentParameters (
1687
- text_document = lsp .TextDocumentIdentifier (
1688
- uri = lsp .DocumentUri .from_file_path (tracked_path ).unparse (),
1689
- ),
1690
- content_changes = [lsp .ContentChange (text = unsaved_file_content )],
1691
- ),
1692
- )
1693
- # When unsaved changes is not enabled, we should send no requests.
1694
- self .assertEqual (
1695
- querier .requests ,
1696
- [
1697
- {"path" : tracked_path , "code" : unsaved_file_content },
1698
- ],
1699
- )
1700
- expect_diagnostics = self ._expect_diagnostics (
1701
- uri = "file:///tracked.py" ,
1702
- diagnostics = [
1703
- lsp .Diagnostic (
1704
- range = lsp .LspRange (
1705
- start = lsp .LspPosition (line = 0 , character = 1 ),
1706
- end = lsp .LspPosition (line = 1 , character = 2 ),
1707
- ),
1708
- message = "description" ,
1709
- severity = lsp .DiagnosticSeverity .ERROR ,
1710
- code = "pyre (documentation link)" ,
1711
- source = "Pyre" ,
1712
- code_description = lsp .CodeDescription (
1713
- href = "https://pyre-check.org/docs/errors/#42-missing-overload-implementation"
1714
- ),
1715
- )
1716
- ],
1717
- )
1718
- if telemetry .is_enabled ():
1719
- expectations = [
1720
- self ._expect_telemetry_event (
1721
- operation = "didChange" ,
1722
- result = None ,
1723
- ),
1724
- expect_diagnostics ,
1725
- self ._expect_telemetry_event (
1726
- operation = "typeErrors" ,
1727
- result = None ,
1728
- ),
1729
- ]
1730
- else :
1731
- expectations = [expect_diagnostics ]
1732
- self ._assert_output_messages (
1733
- output_writer ,
1734
- expectations ,
1735
- )
1736
-
1737
- @setup .async_test
1738
- async def test_did_change__no_type_errors (self ) -> None :
1739
- tracked_path = Path ("/tracked.py" )
1740
- for telemetry in (
1741
- features .TelemetryAvailability .ENABLED ,
1742
- features .TelemetryAvailability .DISABLED ,
1743
- ):
1744
- querier = server_setup .MockDaemonQuerier (
1745
- mock_type_errors = {},
1746
- )
1747
- setup = server_setup .create_pyre_language_server_api_setup (
1748
- opened_documents = {
1749
- tracked_path : state .OpenedDocumentState (
1750
- code = server_setup .DEFAULT_FILE_CONTENTS
1751
- )
1752
- },
1753
- querier = querier ,
1754
- server_options = server_setup .create_server_options (
1755
- language_server_features = features .LanguageServerFeatures (
1756
- unsaved_changes = features .UnsavedChangesAvailability .ENABLED ,
1757
- telemetry = telemetry ,
1758
- ),
1759
- ),
1760
- )
1761
- api = setup .api
1762
- output_writer = setup .output_writer
1763
- await api .process_did_change_request (
1764
- parameters = lsp .DidChangeTextDocumentParameters (
1765
- text_document = lsp .TextDocumentIdentifier (
1766
- uri = lsp .DocumentUri .from_file_path (tracked_path ).unparse (),
1767
- ),
1768
- content_changes = [
1769
- lsp .ContentChange (text = server_setup .DEFAULT_FILE_CONTENTS )
1770
- ],
1771
- ),
1772
- )
1773
- # When unsaved changes is not enabled, we should send no requests.
1774
- self .assertEqual (
1775
- querier .requests ,
1776
- [
1777
- {"path" : tracked_path , "code" : server_setup .DEFAULT_FILE_CONTENTS },
1778
- ],
1779
- )
1780
- expect_diagnostics = self ._expect_diagnostics (
1781
- uri = "file:///tracked.py" ,
1782
- diagnostics = [],
1783
- )
1784
- if telemetry .is_enabled ():
1785
- expectations = [
1786
- self ._expect_telemetry_event (
1787
- operation = "didChange" ,
1788
- result = None ,
1789
- ),
1790
- expect_diagnostics ,
1791
- self ._expect_telemetry_event (
1792
- operation = "typeErrors" ,
1793
- result = None ,
1794
- ),
1795
- ]
1796
- else :
1797
- expectations = [expect_diagnostics ]
1798
- self ._assert_output_messages (
1799
- output_writer ,
1800
- expectations ,
1801
- )
1802
-
1803
- @setup .async_test
1804
- async def test_did_change__debounce (self ) -> None :
1805
- unsaved_file_content_list = [f"# some example code { i } " for i in range (3 )]
1806
- tracked_path = Path ("/tracked.py" )
1807
- querier = server_setup .MockDaemonQuerier (
1808
- mock_type_errors = {
1809
- tracked_path : [
1810
- error .Error (
1811
- line = 1 ,
1812
- column = 1 ,
1813
- stop_line = 2 ,
1814
- stop_column = 2 ,
1815
- path = Path ("/tracked.py" ),
1816
- code = 42 ,
1817
- name = "name" ,
1818
- description = "description" ,
1819
- ),
1820
- ]
1821
- }
1822
- )
1823
- setup = server_setup .create_pyre_language_server_api_setup (
1824
- opened_documents = {
1825
- tracked_path : state .OpenedDocumentState (
1826
- code = unsaved_file_content_list [0 ],
1827
- )
1828
- },
1829
- querier = querier ,
1830
- server_options = server_setup .create_server_options (
1831
- language_server_features = features .LanguageServerFeatures (
1832
- unsaved_changes = features .UnsavedChangesAvailability .ENABLED ,
1833
- type_errors = features .TypeErrorsAvailability .ENABLED ,
1834
- telemetry = features .TelemetryAvailability .ENABLED ,
1835
- ),
1836
- ),
1837
- )
1838
- api = setup .api
1839
- output_writer = setup .output_writer
1840
- for i in range (len (unsaved_file_content_list )):
1841
- await api .process_did_change_request (
1842
- parameters = lsp .DidChangeTextDocumentParameters (
1843
- text_document = lsp .TextDocumentIdentifier (
1844
- uri = lsp .DocumentUri .from_file_path (tracked_path ).unparse (),
1845
- ),
1846
- content_changes = [
1847
- lsp .ContentChange (text = unsaved_file_content_list [i ])
1848
- ],
1849
- ),
1850
- )
1851
- setup .server_state .status_tracker .set_status (
1852
- state .ConnectionStatus .INCREMENTAL_CHECK
1853
- )
1854
- self .assertEqual (
1855
- querier .requests ,
1856
- [
1857
- # we expect to be able to send only the first request, since the
1858
- # remaining requests will put the server in a non-ready state
1859
- {"path" : tracked_path , "code" : unsaved_file_content_list [0 ]}
1860
- ],
1861
- )
1862
- expect_diagnostics = self ._expect_diagnostics (
1863
- uri = "file:///tracked.py" ,
1864
- diagnostics = [
1865
- lsp .Diagnostic (
1866
- range = lsp .LspRange (
1867
- start = lsp .LspPosition (line = 0 , character = 1 ),
1868
- end = lsp .LspPosition (line = 1 , character = 2 ),
1869
- ),
1870
- message = "description" ,
1871
- severity = lsp .DiagnosticSeverity .ERROR ,
1872
- code = "pyre (documentation link)" ,
1873
- source = "Pyre" ,
1874
- code_description = lsp .CodeDescription (
1875
- href = "https://pyre-check.org/docs/errors/#42-missing-overload-implementation"
1876
- ),
1877
- )
1878
- ],
1879
- )
1880
- expectations = [
1881
- self ._expect_telemetry_event (
1882
- operation = "didChange" ,
1883
- result = None ,
1884
- ),
1885
- expect_diagnostics ,
1886
- self ._expect_telemetry_event (
1887
- operation = "typeErrors" ,
1888
- result = None ,
1889
- ),
1890
- self ._expect_telemetry_event (
1891
- operation = "didChange" ,
1892
- result = None ,
1893
- ),
1894
- self ._expect_telemetry_event (
1895
- operation = "didChange" ,
1896
- result = None ,
1897
- ),
1898
- ]
1899
- self ._assert_output_messages (
1900
- output_writer ,
1901
- expectations ,
1902
- )
1903
-
1904
1645
1905
1646
class HoverTest (ApiTestCase ):
1906
1647
@setup .async_test
0 commit comments