Ejemplo n.º 1
0
    def test_persistload_functionality(self,
                                       p_name="test",
                                       params=TEST_PARAMS,
                                       workingdatapath=TESTDATAPATH):

        p = Persistable(p_name, params=params, workingdatapath=workingdatapath)
        key1 = "key1"
        key2 = "key2"
        p.payload[key1][key2] = "test"

        # Persist:
        p.persist()

        # Get Filename:
        fn = default_standard_filename(p_name, **params)

        # Check file persisted:
        self.assertTrue((workingdatapath / fn).exists())

        # Load to new persistable:
        p2 = Persistable(p_name,
                         params=params,
                         workingdatapath=workingdatapath)
        p2.load()

        # Check both payloads are the same:
        self.assertDictEqual(p.payload, p2.payload)
Ejemplo n.º 2
0
    def test_update_payload_name(self,
                                 old_p_name="test",
                                 new_p_name="test2",
                                 params=TEST_PARAMS,
                                 new_intermediate_data_path=TMPTESTDATAPATH):

        # Create clear directory:
        # If directory exists, remove it for test:
        if new_intermediate_data_path.exists():
            # Remove files and dir:
            [f.unlink() for f in new_intermediate_data_path.glob("*")]
            new_intermediate_data_path.rmdir()

        # Persist Payload:
        p = Persistable(old_p_name,
                        params=params,
                        workingdatapath=new_intermediate_data_path)
        p.payload = TEST_PAYLOAD
        p.persist()

        old_fn = default_standard_filename(old_p_name, **params)
        self.assertTrue((new_intermediate_data_path / old_fn).exists())

        # Update fn params and keep old file:
        p.update_payload_name(new_p_name, delete_old=False)
        new_fn = default_standard_filename(new_p_name, **params)
        self.assertTrue((new_intermediate_data_path / old_fn).exists())
        self.assertTrue((new_intermediate_data_path / new_fn).exists())

        # Update fn params when file already exists:
        p = Persistable(old_p_name,
                        params=params,
                        workingdatapath=new_intermediate_data_path)
        with self.assertRaises(FileExistsError):
            p.update_payload_name(new_p_name, delete_old=True)

        # Delete new file and update fn params and remove old file:
        new_fn = default_standard_filename(new_p_name, **params)
        (new_intermediate_data_path / new_fn).unlink()
        p = Persistable(old_p_name,
                        params=params,
                        workingdatapath=new_intermediate_data_path)
        p.update_payload_name(new_p_name, delete_old=True)
        self.assertFalse((new_intermediate_data_path / old_fn).exists())
        self.assertTrue((new_intermediate_data_path / new_fn).exists())

        # Test fn_params updated:
        self.assertEqual(p.payload_name, new_p_name)

        # Load new persistable and check payload:
        p2 = Persistable(new_p_name,
                         params=params,
                         workingdatapath=new_intermediate_data_path)
        p2.load()
        self.assertEqual(TEST_PAYLOAD, p2.payload)