Esempio n. 1
0
 def test_mc_init(self):
     proj_list = mcapi.get_all_projects()
     proj_dict = {p.name:p for p in proj_list}
     self.assertFalse('CLITest' in proj_dict)
     
     testargs = ['mc', 'init']
     with captured_output(wd=self.proj_path) as (sout, serr):
         init_subcommand(testargs)
     #print_stringIO(sout)
     out = sout.getvalue().splitlines()
     remote = mcapi.use_remote()
     url = remote.config.mcurl
     self.assertEqual(out[0], "Created new project at: " + url)
     
     testargs = ['mc', 'init']
     with captured_output(wd=self.proj_path) as (sout, serr):
         init_subcommand(testargs)
     #print_stringIO(sout)
     out = sout.getvalue().splitlines()
     self.assertTrue(re.match("Already in project.  name: CLITest", out[0]))
     
     proj_list = mcapi.get_all_projects()
     proj_dict = {p.name:p for p in proj_list}
     self.assertTrue('CLITest' in proj_dict)
     
     with working_dir(self.proj_path):
         proj = make_local_project()
         self.assertEqual(proj.name, 'CLITest')
Esempio n. 2
0
    def test_one_file(self):
        # ls 1 file (in top directory)
        testargs = ['mc', 'ls', self.files[2][0]]
        with captured_output(wd=self.proj_path) as (sout, serr):
            ls_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        self.assertEqual(out[1].split()[i_l_type], 'file')
        self.assertEqual(out[1].split()[i_r_size], '-')
        self.assertEqual(out[1].split()[i_r_type], '-')
        self.assertEqual(out[1].split()[i_name], 'level_1/file_A.txt')
        self.assertEqual(out[1].split()[i_id], '-')

        testargs = ['mc', 'up', self.files[2][0]]
        with captured_output(wd=self.proj_path) as (sout, serr):
            up_subcommand(testargs)
        #print_stringIO(sout)

        testargs = ['mc', 'ls', self.files[2][0]]
        with captured_output(wd=self.proj_path) as (sout, serr):
            ls_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        self.assertEqual(out[1].split()[i_l_type], 'file')
        self.assertNotEqual(out[1].split()[i_r_size], '-')
        self.assertEqual(out[1].split()[i_r_type], 'file')
        self.assertEqual(out[1].split()[i_name], 'level_1/file_A.txt')
        self.assertNotEqual(out[1].split()[i_id], '-')
Esempio n. 3
0
    def test_mc_clone(self):
        proj_list = mcapi.get_all_projects()
        proj_dict = {p.name: p for p in proj_list}
        self.assertFalse('CLITest' in proj_dict)

        mkdir_if(self.cli_test_project_path)
        mkdir_if(self.proj_path)
        testargs = ['mc', 'init']
        with captured_output(wd=self.proj_path) as (sout, serr):
            init_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        remote = mcapi.use_remote()
        url = remote.config.mcurl
        self.assertEqual(out[0], "Created new project at: " + url)

        proj_list = mcapi.get_all_projects()
        proj_dict = {p.name: p for p in proj_list}

        self.clean_files()
        mkdir_if(self.cli_test_project_path)
        testargs = ['mc', 'clone', proj_dict['CLITest'].id]
        with captured_output(wd=self.cli_test_project_path) as (sout, serr):
            clone_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        self.assertTrue(re.match("Cloned project", out[0]))
        self.assertEqual('CLITest', out[3].split()[0])
Esempio n. 4
0
    def test_mc_expt(self):
        testargs = ['mc', 'init']
        with captured_output(wd=self.proj_path) as (sout, serr):
            init_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        remote = mcapi.use_remote()
        url = remote.config.mcurl
        self.assertEqual(out[0], "Created new project at: " + url)

        testargs = ['mc', 'expt', '-c', 'test_A']
        with captured_output(wd=self.proj_path) as (sout, serr):
            expt_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        self.assertTrue(re.match("Created experiment: test_A", out[0]))
        self.assertTrue(re.match("Set current experiment: 'test_A'", out[1]))

        testargs = ['mc', 'expt', '-c', 'test_B']
        with captured_output(wd=self.proj_path) as (sout, serr):
            expt_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        self.assertTrue(re.match("Created experiment: test_B", out[0]))
        self.assertTrue(re.match("Set current experiment: 'test_B'", out[1]))

        proj_list = mcapi.get_all_projects()
        proj_dict = {p.name: p for p in proj_list}
        expts_list = proj_dict['CLITest'].get_all_experiments()
        expts_dict = {e.name: e for e in expts_list}
        self.assertEqual(len(expts_list), 2)
        self.assertTrue('test_A' in expts_dict)
        self.assertTrue('test_B' in expts_dict)

        testargs = ['mc', 'expt', '-d', 'test_B', '-n']
        with captured_output(wd=self.proj_path) as (sout, serr):
            expt_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()

        proj_list = mcapi.get_all_projects()
        proj_dict = {p.name: p for p in proj_list}
        expts_list = proj_dict['CLITest'].get_all_experiments()
        expts_dict = {e.name: e for e in expts_list}
        self.assertEqual(len(expts_list), 2)
        self.assertTrue('test_A' in expts_dict)
        self.assertTrue('test_B' in expts_dict)

        testargs = ['mc', 'expt', '-d', 'test_B']
        with captured_output(wd=self.proj_path) as (sout, serr):
            expt_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()

        proj_list = mcapi.get_all_projects()
        proj_dict = {p.name: p for p in proj_list}
        expts_list = proj_dict['CLITest'].get_all_experiments()
        expts_dict = {e.name: e for e in expts_list}
        self.assertEqual(len(expts_list), 1)
        self.assertTrue('test_A' in expts_dict)
Esempio n. 5
0
    def test_one_dir(self):
        # ls directory
        testargs = ['mc', 'ls', self.dirs[0]]
        with captured_output(wd=self.proj_path) as (sout, serr):
            ls_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        self.assertEqual(out[2].split()[i_l_type], 'file')
        self.assertEqual(out[2].split()[i_r_type], '-')
        self.assertEqual(out[3].split()[i_l_type], 'file')
        self.assertEqual(out[3].split()[i_r_type], '-')
        self.assertEqual(out[4].split()[i_l_type], 'dir')
        self.assertEqual(out[4].split()[i_r_type], '-')

        testargs = ['mc', 'up', self.files[2][0], self.files[3][0]]
        with captured_output(wd=self.proj_path) as (sout, serr):
            up_subcommand(testargs)
        #print_stringIO(sout)

        testargs = ['mc', 'ls', self.dirs[0]]
        with captured_output(wd=self.proj_path) as (sout, serr):
            ls_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        self.assertEqual(out[2].split()[i_l_type], 'file')
        self.assertNotEqual(out[2].split()[i_r_type], '-')
        self.assertEqual(out[3].split()[i_l_type], 'file')
        self.assertNotEqual(out[3].split()[i_r_type], '-')
        self.assertEqual(out[4].split()[i_l_type], 'dir')
        self.assertEqual(out[4].split()[i_r_type], '-')
Esempio n. 6
0
    def init(cls):
        mkdir_if(cls.cli_test_project_path)
        mkdir_if(cls.proj_path)
        testargs = ['mc', 'init']
        with captured_output(wd=cls.proj_path) as (sout, serr):
            init_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()

        cls.make_test_files()

        testargs = ['mc', 'up', '-r', '.']
        with captured_output(wd=cls.proj_path) as (sout, serr):
            up_subcommand(testargs)

        cls.remove_test_files()
Esempio n. 7
0
 def test_mc_templates_by_name_json(self):
     testargs = ['mc', 'templates', '--json', 'Create Samples']
     with captured_output() as (sout, serr):
         self.templates_subcommand(testargs)
     #print_stringIO(sout)
     template = json.loads(sout.getvalue())
     self.assertTrue(True)
Esempio n. 8
0
 def test_mc_templates_by_id(self):
     testargs = ['mc', 'templates', '--id', 'global_Create Samples']
     with captured_output() as (sout, serr):
         self.templates_subcommand(testargs)
     #print_stringIO(sout)
     out = sout.getvalue().splitlines()
     err = serr.getvalue().splitlines()
     self.assertTrue(True)
Esempio n. 9
0
 def test_one_with_intermediate(self):
     self.assertFalse(os.path.exists(self.files[4][0]))
     # download 1 file (in level_2 directory)
     testargs = ['mc', 'down', self.files[4][0]]
     with captured_output(wd=self.proj_path) as (sout, serr):
         down_subcommand(testargs)
     #print_stringIO(sout)
     self.assertTrue(os.path.exists(self.files[4][0]))
Esempio n. 10
0
    def test_samp_details(self):
        samp_subcommand = SampSubcommand()

        # print sample details
        testargs = ['mc', 'samp', '--details']
        with captured_output(wd=self.proj_path) as (sout, serr):
            samp_subcommand(testargs)
        #print_stringIO(sout)
        self.assertTrue(True)
Esempio n. 11
0
    def test_samp_list_names(self):
        samp_subcommand = SampSubcommand()

        # list samples
        testargs = ['mc', 'samp'] + [samp.name for samp in self.samp]
        with captured_output(wd=self.proj_path) as (sout, serr):
            samp_subcommand(testargs)
        #print_stringIO(sout)
        self.assertTrue(True)
Esempio n. 12
0
 def test_proc_list(self):
     proc_subcommand = ProcSubcommand()
     
     # list processes
     testargs = ['mc', 'proc']
     with captured_output(wd=self.proj_path) as (sout, serr):
         proc_subcommand(testargs)
     #print_stringIO(sout)
     self.assertTrue(True)
Esempio n. 13
0
 def test_samp_list_ids(self):
     proc_subcommand = ProcSubcommand()
     
     # list samples
     testargs = ['mc', 'samp', '--id'] + [p.id for p in self.proc]
     with captured_output(wd=self.proj_path) as (sout, serr):
         proc_subcommand(testargs)
     #print_stringIO(sout)
     self.assertTrue(True)
Esempio n. 14
0
 def test_proc_json(self):
     proc_subcommand = ProcSubcommand()
     
     # print process JSON data
     testargs = ['mc', 'proc', '--json']
     with captured_output(wd=self.proj_path) as (sout, serr):
         proc_subcommand(testargs)
     #print_stringIO(sout)
     data = json.loads(sout.getvalue())
     self.assertTrue(True)
Esempio n. 15
0
    def test_samp_json(self):
        samp_subcommand = SampSubcommand()

        # print sample JSON data
        testargs = ['mc', 'samp', '--json']
        with captured_output(wd=self.proj_path) as (sout, serr):
            samp_subcommand(testargs)
        #print_stringIO(sout)
        data = json.loads(sout.getvalue())
        self.assertTrue(True)
Esempio n. 16
0
 def test_mc_remote(self):
     testargs = ['mc', 'remote']
     with captured_output() as (sout, serr):
         remote_subcommand(testargs)
     #print_stringIO(sout)
     out = sout.getvalue().splitlines()
     err = serr.getvalue().splitlines()
     remote = use_remote()
     url = remote.config.mcurl
     self.assertEqual(url, out[1].split()[1])
Esempio n. 17
0
    def test_mc_proj(self):
        testargs = ['mc', 'proj']
        with captured_output() as (sout, serr):
            self.proj_subcommand(testargs)
        print_stringIO(sout)
        out = sout.getvalue().splitlines()
        err = serr.getvalue().splitlines()

        headers = out[0].split()
        self.assertEqual(headers[0], "name")
        self.assertEqual(headers[1], "owner")
        self.assertEqual(headers[2], "id")
Esempio n. 18
0
 def test_one_in_top(self):
     # upload 1 file (in top directory)
     testargs = ['mc', 'up', self.files[0][0]]
     with captured_output(wd=self.proj_path) as (sout, serr):
         up_subcommand(testargs)
     #print_stringIO(sout)
     out = sout.getvalue().splitlines()
     proj = self.get_proj()
     
     file = proj.get_by_local_path(self.files[0][0])
     self.assertTrue(isinstance(file, mcapi.File))
     self.assertEqual(file.name, os.path.basename(self.files[0][0]))
     self.assertEqual(file._directory_id, proj.get_top_directory().id)
Esempio n. 19
0
 def test_recursive(self):
     for d in self.dirs:
         self.assertFalse(os.path.exists(d))
     for f in self.files[2:]:
         self.assertFalse(os.path.exists(f[0]))
     # download files in level_1 and level_2
     testargs = ['mc', 'down', '-r', self.dirs[0]]
     with captured_output(wd=self.proj_path) as (sout, serr):
         down_subcommand(testargs)
     #print_stringIO(sout)
     for d in self.dirs:
         self.assertTrue(os.path.exists(d))
     for f in self.files[2:]:
         self.assertTrue(os.path.exists(f[0]))
Esempio n. 20
0
 def test_recursive_all(self):
     for d in self.dirs:
         self.assertFalse(os.path.exists(d))
     for f in self.files:
         self.assertFalse(os.path.exists(f[0]))
     # download everything
     testargs = ['mc', 'down', '-r', '.']
     with captured_output(wd=self.proj_path) as (sout, serr):
         down_subcommand(testargs)
     #print_stringIO(sout)
     for d in self.dirs:
         self.assertTrue(os.path.exists(d))
     for f in self.files:
         self.assertTrue(os.path.exists(f[0]))
Esempio n. 21
0
 def test_one_with_intermediate(self):
     # upload 1 file (in level_2 directory)
     testargs = ['mc', 'up', self.files[4][0]]
     with captured_output(wd=self.proj_path) as (sout, serr):
         up_subcommand(testargs)
     #print_stringIO(sout)
     out = sout.getvalue().splitlines()
     proj = self.get_proj()
     
     file = proj.get_by_local_path(self.files[4][0])
     parent = proj.get_directory_by_id(file._directory_id)
     self.assertTrue(isinstance(file, mcapi.File))
     self.assertEqual(file.name, os.path.basename(self.files[4][0]))
     self.assertEqual(file._directory_id, parent.id)
     self.assertEqual(parent.path, "CLITest/level_1/level_2")
Esempio n. 22
0
 def test_recursive(self):
     # upload files in level_1 and level_2
     testargs = ['mc', 'up', '-r', self.dirs[0]]
     with captured_output(wd=self.proj_path) as (sout, serr):
         up_subcommand(testargs)
     #print_stringIO(sout)
     out = sout.getvalue().splitlines()
     proj = self.get_proj()
     
     for d in self.dirs:
         dir = proj.get_by_local_path(d)
         self.assertTrue(isinstance(dir, mcapi.Directory))
 
     for f in self.files[2:]:
         file = proj.get_by_local_path(f[0])
         self.assertTrue(isinstance(file, mcapi.File))
Esempio n. 23
0
    def test_mc_templates_all(self):
        testargs = ['mc', 'templates']
        with captured_output() as (sout, serr):
            self.templates_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        err = serr.getvalue().splitlines()

        headers = out[0].split()
        self.assertEqual(headers[0], "name")
        self.assertEqual(headers[1], "id")

        name = [x.split("global_")[0].strip() for x in out if "global_" in x]
        id = [x.split("global_")[1].strip() for x in out if "global_" in x]

        for n in name:
            self.assertEqual(name.index(n), id.index(n))
Esempio n. 24
0
    def test_two_dir(self):
        # ls two directories
        testargs = ['mc', 'ls', self.dirs[0], self.dirs[1]]
        with captured_output(wd=self.proj_path) as (sout, serr):
            ls_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        self.assertEqual(out[2].split()[i_l_type], 'file')
        self.assertEqual(out[2].split()[i_r_type], '-')
        self.assertEqual(out[3].split()[i_l_type], 'file')
        self.assertEqual(out[3].split()[i_r_type], '-')
        self.assertEqual(out[4].split()[i_l_type], 'dir')
        self.assertEqual(out[4].split()[i_r_type], '-')
        self.assertEqual(out[8].split()[i_l_type], 'file')
        self.assertEqual(out[8].split()[i_r_type], '-')
        self.assertEqual(out[9].split()[i_l_type], 'file')
        self.assertEqual(out[9].split()[i_r_type], '-')

        testargs = ['mc', 'up', self.dirs[1]]
        with captured_output(wd=self.proj_path) as (sout, serr):
            up_subcommand(testargs)
        #print_stringIO(sout)

        testargs = ['mc', 'ls', self.dirs[0], self.dirs[1], '--checksum']
        with captured_output(wd=self.proj_path) as (sout, serr):
            ls_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        self.assertEqual(out[2].split()[i_l_type], 'file')
        self.assertEqual(out[2].split()[i_r_type], '-')
        self.assertEqual(out[3].split()[i_l_type], 'file')
        self.assertEqual(out[3].split()[i_r_type], '-')
        self.assertEqual(out[4].split()[i_l_type], 'dir')
        self.assertNotEqual(out[4].split()[i_r_size], '-')
        self.assertEqual(out[4].split()[i_r_type], 'dir')

        self.assertEqual(out[8].split()[i_l_type], 'file')
        self.assertNotEqual(out[8].split()[i_r_size], '-')
        self.assertEqual(out[8].split()[i_r_type], 'file')
        self.assertEqual(out[8].split()[i_eq], 'True')
        self.assertEqual(out[9].split()[i_l_type], 'file')
        self.assertNotEqual(out[9].split()[i_r_size], '-')
        self.assertEqual(out[9].split()[i_r_type], 'file')

        # test equivalence check
        with open(self.files[4][0], 'w') as f:
            f.write("changed")

        testargs = ['mc', 'ls', self.dirs[0], self.dirs[1], '--checksum']
        with captured_output(wd=self.proj_path) as (sout, serr):
            ls_subcommand(testargs)
        #print_stringIO(sout)
        out = sout.getvalue().splitlines()
        self.assertEqual(out[8].split()[i_eq], 'False')

        # test json
        testargs = ['mc', 'ls', self.dirs[0], self.dirs[1], '--checksum']
        with captured_output(wd=self.proj_path) as (sout, serr):
            ls_subcommand(testargs)
        #print_stringIO(sout)
        self.assertTrue(True)