Пример #1
0
 def test_beamtime_roundtrip(self):
     # This includes checking that a new uid is only generated once
     # and persists thereafter.
     bt = Beamtime('Simon', '123', [], wavelength=0.1828)
     reloaded_bt = Beamtime.from_yaml(bt.to_yaml())
     os.remove(bt.filepath)
     self.assertEqual(reloaded_bt, bt)
Пример #2
0
 def test_beamtime_roundtrip(self):
     # This includes checking that a new uid is only generated once
     # and persists thereafter.
     bt = Beamtime("Simon", "123", [], wavelength=0.1828)
     reloaded_bt = Beamtime.from_yaml(bt.to_yaml())
     os.remove(bt.filepath)
     self.assertEqual(reloaded_bt, bt)
Пример #3
0
    def test_yaml_sync(self):
        """Updating the object immediately, automatically updates the file."""

        # Adding a field syncs
        bt = Beamtime('Simon', '123', [], wavelength=0.1828,
                      field_to_update='before')
        bt['new_field'] = 'test'
        with open(bt.filepath, 'r') as f:
            reloaded_bt = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertEqual(reloaded_bt['new_field'], 'test')
        self.assertEqual(reloaded_bt, bt)

        # Setting to an existing field syncs
        bt = Beamtime('Simon', '123', [], wavelength=0.1828,
                      field_to_update='before')
        with open(bt.filepath, 'r') as f:
            reloaded_bt_before_change = bt.from_yaml(f)
        bt['field_to_update'] = 'after'
        with open(bt.filepath, 'r') as f:
            reloaded_bt_after_change = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertEqual(reloaded_bt_before_change['field_to_update'],
                         'before')
        self.assertEqual(reloaded_bt_after_change['field_to_update'],
                         'after')
        self.assertEqual(reloaded_bt_after_change, bt)

        # Updating syncs
        bt = Beamtime('Simon', '123', [], wavelength=0.1828,
                      field_to_update='before')
        with open(bt.filepath, 'r') as f:
            reloaded_bt_before_change = bt.from_yaml(f)
        bt.update(field_to_update='after')
        with open(bt.filepath, 'r') as f:
            reloaded_bt_after_change = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertEqual(reloaded_bt_before_change['field_to_update'],
                         'before')
        self.assertEqual(reloaded_bt_after_change['field_to_update'],
                         'after')
        self.assertEqual(reloaded_bt_after_change, bt)

        # Deleting a field syncs
        bt = Beamtime('Simon', '123', [], wavelength=0.1828,
                      field_to_remove='before')
        with open(bt.filepath, 'r') as f:
            reloaded_bt_before_change = bt.from_yaml(f)
        del bt['field_to_remove']
        with open(bt.filepath, 'r') as f:
            reloaded_bt_after_change = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertTrue('field_to_remove' in reloaded_bt_before_change)
        self.assertTrue('field_to_remove' not in
                        reloaded_bt_after_change)
        self.assertEqual(reloaded_bt_after_change, bt)

        # Popping a field syncs
        bt = Beamtime('Simon', '123', [], wavelength=0.1828,
                      field_to_remove='before')
        with open(bt.filepath, 'r') as f:
            reloaded_bt_before_change = bt.from_yaml(f)
        bt.pop('field_to_remove')
        with open(bt.filepath, 'r') as f:
            reloaded_bt_after_change = bt.from_yaml(f)
        os.remove(self.bt.filepath)
        self.assertTrue('field_to_remove' in reloaded_bt_before_change)
        self.assertTrue('field_to_remove' not in reloaded_bt_after_change)
        self.assertEqual(reloaded_bt_after_change, bt)

        # setdefault syncs
        bt = Beamtime('Simon', '123', [], wavelength=0.1828,
                      field_to_update='before')
        bt.setdefault('new_field', 'test')
        with open(bt.filepath, 'r') as f:
            reloaded_bt = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertEqual(reloaded_bt['new_field'], 'test')
        self.assertEqual(reloaded_bt, bt)
Пример #4
0
    def test_yaml_sync(self):
        """Updating the object immediately, automatically updates the file."""

        # Adding a field syncs
        bt = Beamtime("Simon",
                      "123", [],
                      wavelength=0.1828,
                      field_to_update="before")
        bt["new_field"] = "test"
        with open(bt.filepath, "r") as f:
            reloaded_bt = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertEqual(reloaded_bt["new_field"], "test")
        self.assertEqual(reloaded_bt, bt)

        # Setting to an existing field syncs
        bt = Beamtime("Simon",
                      "123", [],
                      wavelength=0.1828,
                      field_to_update="before")
        with open(bt.filepath, "r") as f:
            reloaded_bt_before_change = bt.from_yaml(f)
        bt["field_to_update"] = "after"
        with open(bt.filepath, "r") as f:
            reloaded_bt_after_change = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertEqual(reloaded_bt_before_change["field_to_update"],
                         "before")
        self.assertEqual(reloaded_bt_after_change["field_to_update"], "after")
        self.assertEqual(reloaded_bt_after_change, bt)

        # Updating syncs
        bt = Beamtime("Simon",
                      "123", [],
                      wavelength=0.1828,
                      field_to_update="before")
        with open(bt.filepath, "r") as f:
            reloaded_bt_before_change = bt.from_yaml(f)
        bt.update(field_to_update="after")
        with open(bt.filepath, "r") as f:
            reloaded_bt_after_change = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertEqual(reloaded_bt_before_change["field_to_update"],
                         "before")
        self.assertEqual(reloaded_bt_after_change["field_to_update"], "after")
        self.assertEqual(reloaded_bt_after_change, bt)

        # Deleting a field syncs
        bt = Beamtime("Simon",
                      "123", [],
                      wavelength=0.1828,
                      field_to_remove="before")
        with open(bt.filepath, "r") as f:
            reloaded_bt_before_change = bt.from_yaml(f)
        del bt["field_to_remove"]
        with open(bt.filepath, "r") as f:
            reloaded_bt_after_change = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertTrue("field_to_remove" in reloaded_bt_before_change)
        self.assertTrue("field_to_remove" not in reloaded_bt_after_change)
        self.assertEqual(reloaded_bt_after_change, bt)

        # Popping a field syncs
        bt = Beamtime("Simon",
                      "123", [],
                      wavelength=0.1828,
                      field_to_remove="before")
        with open(bt.filepath, "r") as f:
            reloaded_bt_before_change = bt.from_yaml(f)
        bt.pop("field_to_remove")
        with open(bt.filepath, "r") as f:
            reloaded_bt_after_change = bt.from_yaml(f)
        os.remove(self.bt.filepath)
        self.assertTrue("field_to_remove" in reloaded_bt_before_change)
        self.assertTrue("field_to_remove" not in reloaded_bt_after_change)
        self.assertEqual(reloaded_bt_after_change, bt)

        # setdefault syncs
        bt = Beamtime("Simon",
                      "123", [],
                      wavelength=0.1828,
                      field_to_update="before")
        bt.setdefault("new_field", "test")
        with open(bt.filepath, "r") as f:
            reloaded_bt = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertEqual(reloaded_bt["new_field"], "test")
        self.assertEqual(reloaded_bt, bt)
Пример #5
0
 def test_beamtime_roundtrip(self):
     # This includes checking that a new uid is only generated once
     # and persists thereafter.
     reloaded_bt = Beamtime.from_yaml(self.bt.to_yaml())
     os.remove(self.bt.filepath)
     self.assertEqual(reloaded_bt, self.bt)
Пример #6
0
    def test_yaml_sync(self):
        """Updating the object immediately, automatically updates the file."""

        # Adding a field syncs
        bt = Beamtime('Simon', '123', [], wavelength=0.1828,
                      field_to_update='before')
        bt['new_field'] = 'test'
        with open(bt.filepath, 'r') as f:
            reloaded_bt = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertEqual(reloaded_bt['new_field'], 'test')
        self.assertEqual(reloaded_bt, bt)

        # Setting to an existing field syncs
        bt = Beamtime('Simon', '123', [], wavelength=0.1828,
                      field_to_update='before')
        with open(bt.filepath, 'r') as f:
            reloaded_bt_before_change = bt.from_yaml(f)
        bt['field_to_update'] = 'after'
        with open(bt.filepath, 'r') as f:
            reloaded_bt_after_change = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertEqual(reloaded_bt_before_change['field_to_update'],
                         'before')
        self.assertEqual(reloaded_bt_after_change['field_to_update'],
                         'after')
        self.assertEqual(reloaded_bt_after_change, bt)

        # Updating syncs
        bt = Beamtime('Simon', '123', [], wavelength=0.1828,
                      field_to_update='before')
        with open(bt.filepath, 'r') as f:
            reloaded_bt_before_change = bt.from_yaml(f)
        bt.update(field_to_update='after')
        with open(bt.filepath, 'r') as f:
            reloaded_bt_after_change = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertEqual(reloaded_bt_before_change['field_to_update'],
                         'before')
        self.assertEqual(reloaded_bt_after_change['field_to_update'],
                         'after')
        self.assertEqual(reloaded_bt_after_change, bt)

        # Deleting a field syncs
        bt = Beamtime('Simon', '123', [], wavelength=0.1828,
                      field_to_remove='before')
        with open(bt.filepath, 'r') as f:
            reloaded_bt_before_change = bt.from_yaml(f)
        del bt['field_to_remove']
        with open(bt.filepath, 'r') as f:
            reloaded_bt_after_change = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertTrue('field_to_remove' in reloaded_bt_before_change)
        self.assertTrue('field_to_remove' not in
                        reloaded_bt_after_change)
        self.assertEqual(reloaded_bt_after_change, bt)

        # Popping a field syncs
        bt = Beamtime('Simon', '123', [], wavelength=0.1828,
                      field_to_remove='before')
        with open(bt.filepath, 'r') as f:
            reloaded_bt_before_change = bt.from_yaml(f)
        bt.pop('field_to_remove')
        with open(bt.filepath, 'r') as f:
            reloaded_bt_after_change = bt.from_yaml(f)
        os.remove(self.bt.filepath)
        self.assertTrue('field_to_remove' in reloaded_bt_before_change)
        self.assertTrue('field_to_remove' not in reloaded_bt_after_change)
        self.assertEqual(reloaded_bt_after_change, bt)

        # setdefault syncs
        bt = Beamtime('Simon', '123', [], wavelength=0.1828,
                      field_to_update='before')
        bt.setdefault('new_field', 'test')
        with open(bt.filepath, 'r') as f:
            reloaded_bt = bt.from_yaml(f)
        os.remove(bt.filepath)
        self.assertEqual(reloaded_bt['new_field'], 'test')
        self.assertEqual(reloaded_bt, bt)