Example #1
0
 def test_forks(self):
     self.assertPipes([sinks[1], sinks[2], sinks[3]],
                      [trans(1, 2), trans(1, 3)], [sources[1]],
                      (sources[1],
                       base.CheckRunner([
                           sinks[1],
                           trans(1, 2)(base.CheckRunner([sinks[2]])),
                           trans(1, 3)(base.CheckRunner([sinks[3]])),
                       ])))
     self.assertPipes(
         [sinks[1], sinks[2], sinks[3]],
         [trans(0, 1), trans(1, 2), trans(1, 3)], [sources[0]],
         (sources[0],
          base.CheckRunner([
              trans(0, 1)(base.CheckRunner([
                  sinks[1],
                  trans(1, 2)(base.CheckRunner([sinks[2]])),
                  trans(1, 3)(base.CheckRunner([sinks[3]])),
              ]))
          ])))
     self.assertPipes([sinks[0], sinks[1], sinks[2]],
                      (trans(1, 2), ) + trans_down, [sources[1]],
                      (sources[1],
                       base.CheckRunner([
                           sinks[1],
                           trans(1, 2)(base.CheckRunner([sinks[2]])),
                           trans(1, 0)(base.CheckRunner([sinks[0]])),
                       ])))
Example #2
0
 def test_grow(self):
     self.assertPipes(
         [sinks[1], sinks[0]], trans_up, [sources[0]],
         (sources[0],
          base.CheckRunner([
              sinks[0], trans(0, 1)(base.CheckRunner([sinks[1]]))
          ])))
     self.assertPipes(
         [sinks[1], sinks[0]], trans_everything, [sources[0]],
         (sources[0],
          base.CheckRunner([
              sinks[0], trans(0, 1)(base.CheckRunner([sinks[1]]))
          ])))
     self.assertPipes([sinks[2], sinks[0]], trans_up, [sources[0]],
                      (sources[0],
                       base.CheckRunner([
                           sinks[0],
                           trans(0, 1)(base.CheckRunner([
                               trans(1, 2)(base.CheckRunner([sinks[2]])),
                           ]))
                       ])))
     self.assertPipes([sinks[2], sinks[1]], trans_up, [sources[0]],
                      (sources[0],
                       base.CheckRunner([
                           trans(0, 1)(base.CheckRunner([
                               sinks[1],
                               trans(1, 2)(base.CheckRunner([sinks[2]])),
                           ]))
                       ])))
Example #3
0
 def test_too_many_sources(self):
     self.assertPipes([sinks[3]], trans_everything, sources,
                      (sources[3], base.CheckRunner([sinks[3]])))
     self.assertPipes(
         [sinks[2], sinks[4]],
         [trans(1, 2), trans(3, 4), trans(4, 5)], [sources[1], sources[3]],
         (sources[1],
          base.CheckRunner([trans(1, 2)(base.CheckRunner([sinks[2]]))])),
         (sources[3],
          base.CheckRunner([trans(3, 4)(base.CheckRunner([sinks[4]]))])))
Example #4
0
 def test_no_transform(self):
     self.assertPipes(
         [sinks[0]],
         trans_everything,
         [sources[0]],
         (sources[0], base.CheckRunner([sinks[0]])))
     self.assertPipes(
         [sinks[0]],
         [],
         [sources[0]],
         (sources[0], base.CheckRunner([sinks[0]])))
Example #5
0
 def test_scope_affects_transform_cost(self):
     trans_fast = trans(1, 2, scope=base.repository_scope, cost=1)
     trans_slow = trans(1, 2, scope=base.package_scope, cost=10)
     self.assertPipes(
         [sinks[2]], [trans_slow, trans_fast], [sources[1]],
         (sources[1],
          base.CheckRunner([trans_slow(base.CheckRunner([sinks[2]]))])))
     source = DummySource(dummies[1], scope=base.repository_scope)
     self.assertPipes(
         [sinks[2]], [trans_slow, trans_fast], [source],
         (source,
          base.CheckRunner([trans_fast(base.CheckRunner([sinks[2]]))])))
Example #6
0
 def test_scope(self):
     sink1 = DummySink(dummies[1], 1)
     sink2 = DummySink(dummies[2], 2)
     sink3 = DummySink(dummies[3], 3)
     source = DummySource(dummies[1], 3)
     self.assertPipes([sink1, sink2, sink3],
                      [trans(1, 2), trans(2, 3)], [source],
                      (source,
                       base.CheckRunner([
                           sink1,
                           trans(1, 2)(base.CheckRunner([
                               sink2,
                               trans(2, 3)(base.CheckRunner([sink3])),
                           ]))
                       ])))
Example #7
0
 def assertNoReport(self, check, data, msg=""):
     l = []
     if msg:
         msg = f"{msg}: "
     r = FakeReporter(lambda r: l.append(r))
     runner = base.CheckRunner([check])
     runner.start(r)
     runner.feed(data, r)
     runner.finish(r)
     self._assert_known_results(*l)
     assert l == [], f"{msg}{list(report.short_desc for report in l)}"
Example #8
0
 def assertReports(self, check, data):
     l = []
     r = FakeReporter(lambda r: l.append(r))
     runner = base.CheckRunner([check])
     runner.start(r)
     runner.feed(data, r)
     runner.finish(r)
     self._assert_known_results(*l)
     assert l, f"must get a report from {check} {data}, got none"
     self.assertReportSanity(*l)
     return l