#!/usr/bin/python2

import os
import unittest
import subprocess

class test_nack(unittest.TestCase):
    """Test case for testing nack"""

    def setUp(self):
        print "\nTesting nack with best-route"
        print "*****************************"
        os.chdir("test_nack")
        os.system("mkdir -p logs")

    def tearDown(self):
        print "********************************"
        os.chdir("..")

    def test_nack(self):
        print ">>> test nack <<<"

        ret = subprocess.call(['./nack-test.sh'], shell=True)

        if (ret != 0):
            self.fail(" >> TEST NACK FAILED")
        else:
            print ">> TEST NACK PROCEDURE PASSED SUCCESSFULLY"

