def test_bash_print_multiple_args_same_singlequotes(self): str1, str2 = "Wind", "Fire" expected = str1 + str2 cmd = py2bash('''print "{}" \'{}\''''.format(str1, str2), Visitor()) p = Popen(['bash', '-c', cmd], stderr=STDOUT, stdout=PIPE) actual = ''.join(p.stdout.read().rsplit('\r\n')) self.assertEquals(expected, actual)
def test_for_loop_seq_end_only(self): actual = py2bash('''for i in range(5): print i''', Visitor()) expected = '''for i in {0..4} do echo $i done''' self.assertEquals(expected, actual)
def test_for_loop_seq_both_boundaries(self): actual = py2bash('''for i in range(0, 5): print i''', Visitor()) expected = '''for i in {0..4} do echo $i done''' self.assertEquals(expected, actual)
def test_bash_print_variable(self): cseq = '''a = 7 print a''' expected = "7" cmd = py2bash(cseq, Visitor()) p = Popen(['bash', '-c', cmd], stderr=STDOUT, stdout=PIPE) actual = ''.join(p.stdout.read().rsplit('\r\n')) self.assertEquals(expected, actual)
def test_for_loop_seq_var_as_end(self): actual = py2bash('''end=5 for i in range(end): print i''', Visitor()) expected = '''end=5 for i in $(eval echo {0..$(($end-1))}) do echo $i done''' self.assertEquals(expected, actual)
def test_descending(self): actual = py2bash('''end=5 for i in range(end, 0, -2): print i''', Visitor()) expected = '''end=5 for ((i=0;i<=$(($end-1));i+=2)) do echo $i done''' self.assertEquals(expected, actual)
def test_for_loop_with_step(self): actual = py2bash('''end=5 for i in range(0, end, 2): print i''', Visitor()) expected = '''end=5 for ((i=0;i<=$(($end-1));i+=2)) do echo $i done''' self.assertEquals(expected, actual)
def test_shell_descending(self): cmd = py2bash('''end=5 for i in range(end, 0, -2): print i''', Visitor()) expected = '''5 3 1 ''' p = Popen(['bash', '-c', cmd], stderr=STDOUT, stdout=PIPE) actual = p.stdout.read() self.assertEquals(expected, actual)
def test_shell_for_loop_with_step(self): cmd = py2bash('''end=5 for i in range(0, end, 2): print i''', Visitor()) expected = '''0 2 4 ''' p = Popen(['bash', '-c', cmd], stderr=STDOUT, stdout=PIPE) actual = p.stdout.read() self.assertEquals(expected, actual)
def test_shell_for_loop_seq_both_boundaries(self): cmd = py2bash('''for i in range(0, 5): print i''', Visitor()) expected = '''0 1 2 3 4 ''' p = Popen(['bash', '-c', cmd], stderr=STDOUT, stdout=PIPE) actual = p.stdout.read() self.assertEquals(expected, actual)
def test_shell_for_loop_seq_var_as_end(self): cmd = py2bash('''end=5 for i in range(end): print i''', Visitor()) expected = '''0 1 2 3 4 ''' p = Popen(['bash', '-c', cmd], stderr=STDOUT, stdout=PIPE) actual = p.stdout.read() self.assertEquals(expected, actual)
def test_bash_print_single_arg(self): expected = 'Wind' cmd = py2bash('''print "{}"'''.format(expected), Visitor()) p = Popen(['bash', '-c', cmd], stderr=STDOUT, stdout=PIPE) actual = ''.join(p.stdout.read().rsplit('\r\n')) self.assertEquals(expected, actual)
def test_print_variable(self): actual = py2bash('''a = 2 print a''', Visitor()) expected = '''a=2 echo $a''' self.assertEquals(expected, actual)
def test_multiple_args_same_singlequotes(self): actual = py2bash('''print "Wind" \'Fire\'''', Visitor()) expected = '''echo "WindFire"''' self.assertEquals(expected, actual)
def test_single_arg(self): actual = py2bash('''print "Wind"''', Visitor()) expected = '''echo "Wind"''' self.assertEquals(expected, actual)