MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_copy_internals

Method test_copy_internals

test/sql/test_compare.py:1894–1934  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1892 )
1893
1894 def test_copy_internals(self):
1895 for fixtures_, compare_values in [
1896 (self.fixtures, True),
1897 (self.dont_compare_values_fixtures, False),
1898 ]:
1899 for fixture in fixtures_:
1900 case_a = fixture()
1901 case_b = fixture()
1902
1903 for idx in range(len(case_a)):
1904 assert case_a[idx].compare(
1905 case_b[idx], compare_values=compare_values
1906 )
1907
1908 clone = visitors.replacement_traverse(
1909 case_a[idx], {}, lambda elem: None
1910 )
1911
1912 assert clone.compare(
1913 case_b[idx], compare_values=compare_values
1914 )
1915
1916 assert case_a[idx].compare(
1917 case_b[idx], compare_values=compare_values
1918 )
1919
1920 # copy internals of Select is very different than other
1921 # elements and additionally this is extremely well tested
1922 # in test_selectable and test_external_traversal, so
1923 # skip these
1924 if isinstance(case_a[idx], Select):
1925 continue
1926
1927 for elema, elemb in zip(
1928 visitors.iterate(case_a[idx], {}),
1929 visitors.iterate(clone, {}),
1930 ):
1931 if isinstance(elema, ClauseElement) and not isinstance(
1932 elema, Immutable
1933 ):
1934 assert elema is not elemb
1935
1936
1937class CompareClausesTest(fixtures.TestBase):

Callers

nothing calls this directly

Calls 3

iterateMethod · 0.80
fixtureFunction · 0.50
compareMethod · 0.45

Tested by

no test coverage detected