예제 #1
0
class TestJobFile(AbipyFileTest):
    """Unit tests for JobFile."""
    def setUp(self):
        self.file = JobFile('MyJob.sh', input='myinput')

    def test_shell_line(self):
        """Check the shell line is printed correctly."""
        self.assertContains("#!/bin/bash")
        self.file.shell = 'csh'
        self.assertContains("#!/bin/csh")

    def test_declaration_lines(self):
        """Check the declaration are printed correctly in bash."""
        self.assertContains("""
        MPIRUN=""
        EXECUTABLE=abinit
        INPUT=myinput
        LOG=log
        STDERR=stderr
        """)

    def test_execution_line(self):
        """Check the execution line is printed correctly in bash."""
        self.assertContains("""
        $MPIRUN $EXECUTABLE < $INPUT > $LOG 2> $STDERR
        """)

    def test_mpirun(self):
        """Check mpirun is set correctly."""
        self.file.mpirun = 'openmpirun -n 2'
        self.assertContains("""
        MPIRUN="openmpirun -n 2"
        """)

    def test_modules(self):
        """Check the modules are loaded correctly."""

        self.file.modules = "single"
        self.assertContains("module load single")

        m1, m2 = 'mod1', 'mod2/version/1.4-b'
        lookfor = """
        module load {}
        module load {}
        """.format(m1, m2)
        self.file.modules = m1, m2
        self.assertContains(lookfor)

        self.file.modules = [m1, m2]
        self.assertContains(lookfor)

        self.file.set_modules(m1, m2)
        self.assertContains(lookfor)

        self.file.set_modules([m1, m2])
        self.assertContains(lookfor)

    def test_lines_before(self):
        """Check lines_before are printed correctly."""

        single_line = "A single line."
        self.file.lines_before = single_line
        self.assertContains(single_line)

        l1 = "This is my first line!"
        l2 = "And that is my ${SECOND_LINE}"
        lookfor = '\n'.join([l1, l2])

        self.file.lines_before = l1, l2
        self.assertContains(lookfor)

        self.file.lines_before = [l1, l2]
        self.assertContains(lookfor)

        self.file.set_lines_before(l1, l2)
        self.assertContains(lookfor)

        self.file.set_lines_before([l1, l2])
        self.assertContains(lookfor)

    def test_lines_after(self):
        """Check lines_after are printed correctly."""

        single_line = "A single line."
        self.file.lines_after = single_line
        self.assertContains(single_line)

        l1 = "This is my first line!"
        l2 = "And that is my ${SECOND_LINE}"
        lookfor = '\n'.join([l1, l2])

        self.file.lines_after = l1, l2
        self.assertContains(lookfor)

        self.file.lines_after = [l1, l2]
        self.assertContains(lookfor)

        self.file.set_lines_after(l1, l2)
        self.assertContains(lookfor)

        self.file.set_lines_after([l1, l2])
        self.assertContains(lookfor)

    def test_other_lines(self):
        """Check other_lines are printed correctly."""

        single_line = "A single line."
        self.file.other_lines = single_line
        self.assertContains(single_line)

        l1 = "This is my first line!"
        l2 = "And that is my ${SECOND_LINE}"
        lookfor = '\n'.join([l1, l2])

        self.file.other_lines = l1, l2
        self.assertContains(lookfor)

        self.file.other_lines = [l1, l2]
        self.assertContains(lookfor)

        self.file.set_other_lines(l1, l2)
        self.assertContains(lookfor)

        self.file.set_other_lines([l1, l2])
        self.assertContains(lookfor)
예제 #2
0
class TestJobFile(AbipyFileTest):
    """Unit tests for JobFile."""

    def setUp(self):
        self.file = JobFile('MyJob.sh', input='myinput')

    def test_shell_line(self):
        """Check the shell line is printed correctly."""
        self.assertContains("#!/bin/bash")
        self.file.shell = 'csh'
        self.assertContains("#!/bin/csh")

    def test_declaration_lines(self):
        """Check the declaration are printed correctly in bash."""
        self.assertContains("""
        MPIRUN=""
        EXECUTABLE=abinit
        INPUT=myinput
        LOG=log
        STDERR=stderr
        """)

    def test_execution_line(self):
        """Check the execution line is printed correctly in bash."""
        self.assertContains("""
        $MPIRUN $EXECUTABLE < $INPUT > $LOG 2> $STDERR
        """)

    def test_mpirun(self):
        """Check mpirun is set correctly."""
        self.file.mpirun = 'openmpirun -n 2'
        self.assertContains("""
        MPIRUN="openmpirun -n 2"
        """)

    def test_modules(self):
        """Check the modules are loaded correctly."""

        self.file.modules = "single"
        self.assertContains("module load single")

        m1, m2 = 'mod1', 'mod2/version/1.4-b'
        lookfor = """
        module load {0}
        module load {1}
        """.format(m1, m2)
        self.file.modules = m1, m2
        self.assertContains(lookfor)

        self.file.modules = [m1, m2]
        self.assertContains(lookfor)

        self.file.set_modules(m1, m2)
        self.assertContains(lookfor)

        self.file.set_modules([m1, m2])
        self.assertContains(lookfor)

    def test_lines_before(self):
        """Check lines_before are printed correctly."""

        single_line = "A single line."
        self.file.lines_before = single_line
        self.assertContains(single_line)

        l1 = "This is my first line!"
        l2 = "And that is my ${SECOND_LINE}"
        lookfor = '\n'.join([l1, l2])

        self.file.lines_before = l1, l2
        self.assertContains(lookfor)

        self.file.lines_before = [l1, l2]
        self.assertContains(lookfor)

        self.file.set_lines_before(l1, l2)
        self.assertContains(lookfor)

        self.file.set_lines_before([l1, l2])
        self.assertContains(lookfor)

    def test_lines_after(self):
        """Check lines_after are printed correctly."""

        single_line = "A single line."
        self.file.lines_after = single_line
        self.assertContains(single_line)

        l1 = "This is my first line!"
        l2 = "And that is my ${SECOND_LINE}"
        lookfor = '\n'.join([l1, l2])

        self.file.lines_after = l1, l2
        self.assertContains(lookfor)

        self.file.lines_after = [l1, l2]
        self.assertContains(lookfor)

        self.file.set_lines_after(l1, l2)
        self.assertContains(lookfor)

        self.file.set_lines_after([l1, l2])
        self.assertContains(lookfor)

    def test_other_lines(self):
        """Check other_lines are printed correctly."""

        single_line = "A single line."
        self.file.other_lines = single_line
        self.assertContains(single_line)

        l1 = "This is my first line!"
        l2 = "And that is my ${SECOND_LINE}"
        lookfor = '\n'.join([l1, l2])

        self.file.other_lines = l1, l2
        self.assertContains(lookfor)

        self.file.other_lines = [l1, l2]
        self.assertContains(lookfor)

        self.file.set_other_lines(l1, l2)
        self.assertContains(lookfor)

        self.file.set_other_lines([l1, l2])
        self.assertContains(lookfor)
예제 #3
0
 def setUp(self):
     self.file = JobFile('MyJob.sh', input='myinput')
     self.file.shell = 'csh'
예제 #4
0
 def setUp(self):
     self.file = JobFile('MyJob.sh', input='myinput')