import nilmdb
from nilmdb.printf import *

from nose.tools import *
from nose.tools import assert_raises
from cStringIO import StringIO
import sys

from test_helpers import *

class TestPrintf(object):
    def test_printf(self):
        old_stdout = sys.stdout
        sys.stdout = test1 = StringIO()
        test2 = StringIO()
        test3 = ""
        try:
            printf("hello, world: %d", 123)
            fprintf(test2, "hello too: %d", 123)
            test3 = sprintf("hello three: %d", 123)
        except:
            sys.stdout = old_stdout
            raise
        sys.stdout = old_stdout
        eq_(test1.getvalue(), "hello, world: 123")
        eq_(test2.getvalue(), "hello too: 123")
        eq_(test3, "hello three: 123")
