#!/usr/bin/env python
# test has been developed by Robert Harakaly and changed for SAM by Victor Galaktionov 
# rename a LFC file or directory in the name server (lfc_rename)  
# meta: proxy=true
# meta: preconfig=../../LFC-config

import os, lfc, sys
from testClass import _test, _ntest, _testRunner, SAM_Run, LFC_VO, TEST_HOME

class test_ok(_test):
    def info(self):
	return "lfc_rename OK "
    def clean(self):
        lfc.lfc_unlink(self.new_name)
    def prepare(self):
        self.guid = self.get_guid()
        self.name = LFC_VO + "/python_filerename_test"    # Victor
        ret = lfc.lfc_creatg(self.name,self.guid,0664)
        self.stat=lfc.lfc_filestatg()
        ret=lfc.lfc_statg(self.name, "", self.stat)

    def test(self):
        self.new_name= LFC_VO + "/python_filerenamed_test"  # Victor
	ret = lfc.lfc_rename(self.name,self.new_name)
        stat=lfc.lfc_filestatg()
        ret=lfc.lfc_statg(self.new_name, "", stat)
        return (stat,ret)
    def ret(self):
        return self.stat
    def compare(self, testVal, retVal):
        (ret, retRetVal) = retVal
        (test, testRetVal) = testVal
        retval = True
        if (retRetVal == testRetVal):
            retval = retval & ( test.nlink == ret.nlink )
	    retval = retval & ( test.filesize == ret.filesize )
            retval = retval & ( test.fileclass == ret.fileclass )
            retval = retval & ( test.status == ret.status )
            retval = retval & ( test.guid == ret.guid )
        else:
            retval = False
        return retval

#	rename inexisting file
#	rename existing file but without privileges

class lfc_rename_test(_testRunner):
    def __init__(self):
        self.name = "lfc_rename_test"
        self.tests=[test_ok]


#************* Interface for SAM and Python tests ***************
SAM_Run(lfc_rename_test)

