Esempio n. 1
0
    def test_copy(self):
        C = self.make_class()

        class D(C, CopyMixin):
            copy_specs = ["name", "id", "context"]

        a = D("foo", 1)
        self.assertEqual(D._instances.len(all), 1)

        a.copy("bar", 2)
        a.copy(context="other")
        self.assertEqual(D._instances.len(all), 3)

        with self.assertRaises(DuplicateIdException):
            a.copy("baz")

        with self.assertRaises(DuplicateNameException):
            a.copy(id=3)

        with uniqueness_context("other2"):
            a.copy()
        self.assertEqual(D._instances.len(all), 4)

        with self.assertRaises(DuplicateObjectException):
            with uniqueness_context("other"):
                a.copy()
Esempio n. 2
0
    def test_copy(self):
        with uniqueness_context("category_test_copy"):
            SL = Channel("SL", 1)
            c = Category("eq4j", channel=SL)
            c.add_category("eq4j_eq2b")
            with uniqueness_context("other_context"):
                c2 = c.copy(name="SL2", id="+")

        self.assertEqual(len(c.categories), 1)
        self.assertEqual(len(c2.categories), 0)
        self.assertEqual(c2.channel, c.channel)
Esempio n. 3
0
    def test_datasets(self):
        with uniqueness_context("campaign_test_datasets"):
            a = Campaign("2017A", 1)
            b = Campaign("2017B", 2)
            d = Dataset("ttH", 1, campaign=a)

        self.assertEqual(d.campaign, "2017A")
        self.assertIn(d, a.datasets)
        self.assertEqual(len(a.datasets), 1)

        d.campaign = None
        self.assertIsNone(d.campaign)
        self.assertNotIn(d, a.datasets)
        self.assertEqual(len(a.datasets), 0)

        b.add_dataset(d)
        self.assertEqual(d.campaign, "2017B")
        self.assertIn(d, b.datasets)
        self.assertEqual(len(b.datasets), 1)

        d.campaign = a
        self.assertEqual(d.campaign, "2017A")
        self.assertIn(d, a.datasets)

        d.campaign = None
        self.assertIsNone(d.campaign)
        self.assertEqual(len(a.datasets), 0)
        self.assertEqual(len(b.datasets), 0)
Esempio n. 4
0
    def test_configs(self):
        with uniqueness_context("analysis_test_configs"):
            ca = Campaign("2017A", 1)
            cf = Config(ca)
            p = cf.add_process("ttH_bb", 1)
            an = Analysis("ttH_cbb", 1, configs=[cf])

        self.assertEqual(an.get_config("2017A"), cf)
        self.assertEqual(len(an.get_processes(1)), 1)
        self.assertEqual(an.get_processes(1).get(1), p)

        self.assertEqual(an.remove_config(cf), cf)
        self.assertEqual(len(an.configs), 0)

        cf.analysis = an
        self.assertEqual(len(an.configs), 1)
        self.assertEqual(an.get_config("2017A"), cf)
Esempio n. 5
0
    def test_contexts(self):
        C = self.make_class()
        self.assertEqual(C.default_context, "c")

        c = C("foo", 1)
        self.assertEqual(c.context, "c")

        c = C("foo", 1, context="test_context")
        self.assertEqual(c.context, "test_context")

        with uniqueness_context("x"):
            c = C("foo", 1)
            self.assertEqual(c.context, "x")

            c = C("foo", 1, context="y")
            self.assertEqual(c.context, "y")

        c = C("bar", 2)
        self.assertEqual(c.context, "c")

        self.assertEqual(set(C._instances.contexts()), {"y", "x", "c", "test_context"})