mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) move data engine code to core
Summary: this moves sandbox/grist to core, and adds a requirements.txt file for reconstructing the content of sandbox/thirdparty. Test Plan: existing tests pass. Tested core functionality manually. Tested docker build manually. Reviewers: dsagal Reviewed By: dsagal Differential Revision: https://phab.getgrist.com/D2563
This commit is contained in:
59
sandbox/grist/test_treeview.py
Normal file
59
sandbox/grist/test_treeview.py
Normal file
@@ -0,0 +1,59 @@
|
||||
from collections import namedtuple
|
||||
import unittest
|
||||
|
||||
from treeview import fix_indents
|
||||
|
||||
Item = namedtuple('Item', 'id indentation')
|
||||
|
||||
def fix_and_check(items, changes):
|
||||
# convert from strings to items with ids and indents (e.g. "A0" -> {id: "A", indent: 0} returns
|
||||
# the pair (adjustments, resulting items converted to strings) for verification
|
||||
all_items = [Item(i[0], int(i[1:])) for i in items]
|
||||
adjustments = fix_indents(all_items, changes)
|
||||
fix_map = {id: indentation for id, indentation in adjustments}
|
||||
all_items = [i for i in all_items if i.id not in changes]
|
||||
result = ['%s%s' % (i.id, fix_map.get(i.id, i.indentation)) for i in all_items]
|
||||
return (adjustments, result)
|
||||
|
||||
class TestTreeView(unittest.TestCase):
|
||||
|
||||
def test_fix_indents(self):
|
||||
self.assertEqual(fix_and_check(["A0", "B0", "C1", "D1"], {"B"}), (
|
||||
[("C", 0)],
|
||||
["A0", "C0", "D1"]))
|
||||
|
||||
self.assertEqual(fix_and_check(["A0", "B1", "C1", "D1"], {"B"}), (
|
||||
[],
|
||||
["A0", "C1", "D1"]))
|
||||
|
||||
self.assertEqual(fix_and_check(["A0", "B0", "C1", "D2", "E3", "F2", "G1", "H0"], {"B"}), (
|
||||
[("C", 0), ("D", 1), ("E", 2)],
|
||||
["A0", "C0", "D1", "E2", "F2", "G1", "H0"]))
|
||||
|
||||
self.assertEqual(fix_and_check(["A0", "B1", "C1", "D1"], {"A", "B"}), (
|
||||
[("C", 0)],
|
||||
["C0", "D1"]))
|
||||
|
||||
self.assertEqual(fix_and_check(["A0", "B0", "C1", "D1"], {"A", "B"}), (
|
||||
[("C", 0)],
|
||||
["C0", "D1"]))
|
||||
|
||||
self.assertEqual(fix_and_check(["A0", "B1", "C2", "D0"], {"A", "B"}), (
|
||||
[("C", 0)],
|
||||
["C0", "D0"]))
|
||||
|
||||
self.assertEqual(fix_and_check(["A0", "B1", "C2", "D0"], {"A", "C"}), (
|
||||
[("B", 0)],
|
||||
["B0", "D0"]))
|
||||
|
||||
self.assertEqual(fix_and_check(["A0", "B1", "C2", "D0"], {"B", "C"}), (
|
||||
[],
|
||||
["A0", "D0"]))
|
||||
|
||||
self.assertEqual(fix_and_check(["A0", "B1", "C2", "D0", "E0"], {"B", "D"}), (
|
||||
[("C", 1)],
|
||||
["A0", "C1", "E0"]))
|
||||
|
||||
self.assertEqual(fix_and_check(["A0", "B1", "C2", "D0", "E1"], {"B", "D"}), (
|
||||
[("C", 1), ("E", 0)],
|
||||
["A0", "C1", "E0"]))
|
||||
Reference in New Issue
Block a user