Example #1
0
 def check_empty_db(filename):
     env = {}
     assert jsonenv.update_env(fn, env, jsonenv.RAISE)
     assert env == {}
     env = {"ITEM":"val"}
     assert jsonenv.update_env(fn, env, jsonenv.RAISE)
     assert env == {"ITEM":"val"}
Example #2
0
 def check_empty_db(filename):
     env = {}
     assert jsonenv.update_env(fn, env, jsonenv.RAISE)
     assert env == {}
     env = {"ITEM": "val"}
     assert jsonenv.update_env(fn, env, jsonenv.RAISE)
     assert env == {"ITEM": "val"}
Example #3
0
 def check_db(filename, expected=None):
     env = {}
     assert jsonenv.update_env(fn, env, jsonenv.SKIP)
     if expected is not None:
         if env != expected:
             #print "got:", env
             #print "file(%s): <<END" % filename
             f = open(fn, "r")
             try:
                 pass
                 #print f.read()
             finally:
                 f.close()
             #print "END"
             assert env == expected
Example #4
0
 def check_db(filename, expected=None):
     env = {}
     assert jsonenv.update_env(fn, env, jsonenv.SKIP)
     if expected is not None:
         if env != expected:
             #print "got:", env
             #print "file(%s): <<END" % filename
             f = open(fn, "r")
             try:
                 pass
                 #print f.read()
             finally:
                 f.close()
             #print "END"
             assert env == expected
Example #5
0
    def testMain(self):

        def unlink_failsafe(filename):
            try:
                os.unlink(fn)
            except:
                pass

        def check_empty_db(filename):
            env = {}
            assert jsonenv.update_env(fn, env, jsonenv.RAISE)
            assert env == {}
            env = {"ITEM":"val"}
            assert jsonenv.update_env(fn, env, jsonenv.RAISE)
            assert env == {"ITEM":"val"}

        def check_db(filename, expected=None):
            env = {}
            assert jsonenv.update_env(fn, env, jsonenv.SKIP)
            if expected is not None:
                if env != expected:
                    #print "got:", env
                    #print "file(%s): <<END" % filename
                    f = open(fn, "r")
                    try:
                        pass
                        #print f.read()
                    finally:
                        f.close()
                    #print "END"
                    assert env == expected

        d = tempfile.mkdtemp()
        try:
            #print >> sys.stderr, "Tempdir: %s" % d

            fn = os.path.join(d, "empty.db")
            try:
                check_empty_db(fn)
            finally:
                unlink_failsafe(fn)

            # check non-empty DB will add all values to dict:
            env = {"VAR1":"VAL1", "VAR2":"VAL2"}
            fn = os.path.join(d, "test.db")
            assert jsonenv.export_env(fn, env, jsonenv.RAISE)
            try:
                check_db(fn, env)
                env2 = {}
                assert jsonenv.update_env(fn, env2, jsonenv.RAISE)
                assert env == env2
            finally:
                unlink_failsafe(fn)

            # check RAISE:
            env = {"VAR1":"VAL1", "VAR2":"VAL2", "BAD":object()}
            fn = os.path.join(d, "test.db")
            try:
                try:
                    jsonenv.export_env(fn, env, jsonenv.RAISE)
                    assert False
                except:
                    pass
                check_empty_db(fn)
            finally:
                unlink_failsafe(fn)

            # check ABORT:
            env = {"VAR1":"VAL1", "VAR2":"VAL2", "BAD":object()}
            fn = os.path.join(d, "test.db")
            try:
                assert not jsonenv.export_env(fn, env, jsonenv.ABORT)
                check_empty_db(fn)
            finally:
                unlink_failsafe(fn)

            # check SKIP:
            env = {"VAR1":"VAL1", "VAR2":"VAL2", "BAD":object()}
            fn = os.path.join(d, "test.db")
            try:
                assert not jsonenv.export_env(fn, env, jsonenv.SKIP)
                env2 = {}
                assert jsonenv.update_env(fn, env2, jsonenv.RAISE)
                env3 = dict(env)
                del env3["BAD"]
                assert env2 == env3
            finally:
                unlink_failsafe(fn)

        finally:
            shutil.rmtree(d)
Example #6
0
    def testMain(self):
        def unlink_failsafe(filename):
            try:
                os.unlink(fn)
            except:
                pass

        def check_empty_db(filename):
            env = {}
            assert jsonenv.update_env(fn, env, jsonenv.RAISE)
            assert env == {}
            env = {"ITEM": "val"}
            assert jsonenv.update_env(fn, env, jsonenv.RAISE)
            assert env == {"ITEM": "val"}

        def check_db(filename, expected=None):
            env = {}
            assert jsonenv.update_env(fn, env, jsonenv.SKIP)
            if expected is not None:
                if env != expected:
                    #print "got:", env
                    #print "file(%s): <<END" % filename
                    f = open(fn, "r")
                    try:
                        pass
                        #print f.read()
                    finally:
                        f.close()
                    #print "END"
                    assert env == expected

        d = tempfile.mkdtemp()
        try:
            #print >> sys.stderr, "Tempdir: %s" % d

            fn = os.path.join(d, "empty.db")
            try:
                check_empty_db(fn)
            finally:
                unlink_failsafe(fn)

            # check non-empty DB will add all values to dict:
            env = {"VAR1": "VAL1", "VAR2": "VAL2"}
            fn = os.path.join(d, "test.db")
            assert jsonenv.export_env(fn, env, jsonenv.RAISE)
            try:
                check_db(fn, env)
                env2 = {}
                assert jsonenv.update_env(fn, env2, jsonenv.RAISE)
                assert env == env2
            finally:
                unlink_failsafe(fn)

            # check RAISE:
            env = {"VAR1": "VAL1", "VAR2": "VAL2", "BAD": object()}
            fn = os.path.join(d, "test.db")
            try:
                try:
                    jsonenv.export_env(fn, env, jsonenv.RAISE)
                    assert False
                except:
                    pass
                check_empty_db(fn)
            finally:
                unlink_failsafe(fn)

            # check ABORT:
            env = {"VAR1": "VAL1", "VAR2": "VAL2", "BAD": object()}
            fn = os.path.join(d, "test.db")
            try:
                assert not jsonenv.export_env(fn, env, jsonenv.ABORT)
                check_empty_db(fn)
            finally:
                unlink_failsafe(fn)

            # check SKIP:
            env = {"VAR1": "VAL1", "VAR2": "VAL2", "BAD": object()}
            fn = os.path.join(d, "test.db")
            try:
                assert not jsonenv.export_env(fn, env, jsonenv.SKIP)
                env2 = {}
                assert jsonenv.update_env(fn, env2, jsonenv.RAISE)
                env3 = dict(env)
                del env3["BAD"]
                assert env2 == env3
            finally:
                unlink_failsafe(fn)

        finally:
            shutil.rmtree(d)