def test_metadata_writeMetaData_1(self):
        """verify writeMetaData write a file and copies it remotely"""
        json_str = """{"backup-today": "2019-01-02", "latest-complete": "2019-01-02-012345"}"""
        metadata = MetaData(self.log, self.comms, self.settings, json_str)
        self.assertEqual(self.log.getVal('info'), '')
        with patch("builtins.open", mock_open(read_data="data")) as mock_file:
            metadata.writeMetaData()
            mock_file.assert_called_with('/Users/judge/.metadata', 'w')
            handle = mock_file()
            handle.write.assert_called_once_with(
                '{"backup-today": "2019-01-02", "latest-complete": "2019-01-02-012345"}\n'
            )

        self.assertEqual(self.comms.getFilename(), '/Users/judge/.metadata')
    def finishUp(self):
        """write .metadata file"""
        if self.backup_successful:
            meta2 = MetaData(self.log, self.comms, self.settings, "")
            meta2.set("latest-complete", TimeDate.datedir())
            meta2.set("backup-today", TimeDate.today())

            try:
                meta2.writeMetaData()

                # move WORKING to Latest Complete Date
                src = os.path.join(self.settings('backup-destination'),
                                   self.settings('local-hostname'), "WORKING")
                dest = os.path.join(self.settings('backup-destination'),
                                    self.settings('local-hostname'),
                                    TimeDate.datedir())
                self.comms.remoteCommand(f"mv {src} {dest}")
            except CrashPlanError as exc:
                print(exc)
                self.log.error(exc)