Esempio n. 1
0
    def test_get_sync_data(
        self,
        mock_get_destination_subdir_data,
        mock_set_destination_subdir_abs,
        mock_oswalk,
    ):
        """
        Test 'get_sync_data' gets list of valid sync_data dictionaries.
        """
        mock_oswalk.return_value = (
            ("/tmp/testdir", ["testsubdir"], ["song.mp3", "demo.mp3"]),
            ("/tmp/testdir/testsubdir", ["testsubdir2"], []),
            ("/tmp/testdir/testsubdir/testsubdir2", [], ["song2.mp3"]),
        )
        mock_set_destination_subdir_abs.side_effect = (
            "/run/user/<user>/gvfs/mtp:host=%5Busb%3A002%2C003%5D/Card/Music/testdir",  # noqa
            "/run/user/<user>/gvfs/mtp:host=%5Busb%3A002%2C003%5D/Card/Music/testdir/testsubdir2",  # noqa
        )

        sync = Sync(FAKE_MTP_DETAILS, "/tmp", "Card/Music")
        sync.set_source_abs()
        sync.set_destination_abs()
        sync_data_set = sync.get_sync_data()

        self.assertTrue(mock_set_destination_subdir_abs.call_count, 2)
        self.assertTrue(mock_get_destination_subdir_data.call_count, 2)

        expected_sync_data_set = [
            {
                "src_dir_abs":
                "/tmp/testdir",
                "src_dir_fls": [
                    "/tmp/testdir/song.mp3",
                    "/tmp/testdir/demo.mp3",
                ],
                "dst_dir_fls": [],
                "dst_dir_abs":
                "/run/user/<user>/gvfs/mtp:host=%5Busb%3A002%2C003%5D/Card/Music/testdir",  # noqa
            },
            {
                "src_dir_abs":
                "/tmp/testdir/testsubdir/testsubdir2",
                "src_dir_fls":
                ["/tmp/testdir/testsubdir/testsubdir2/song2.mp3"],
                "dst_dir_fls": [],
                "dst_dir_abs":
                "/run/user/<user>/gvfs/mtp:host=%5Busb%3A002%2C003%5D/Card/Music/testdir/testsubdir2",  # noqa
            },
        ]

        self.assertIsInstance(sync_data_set, list)
        self.assertEqual(sync_data_set, expected_sync_data_set)