#!/usr/bin/env python
# test has been developed by Robert Harakaly and changed for SAM by Victor Galaktionov
# create  a  new LFC directory in the name server with the specified GUID (lfc_mkdirg) 
# 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_create_dir_ok(_test):
    def info(self):
        return "Directory creation"
    def test(self):
        self.name = LFC_VO + "/python_mkdir_test"
        self.guid = self.get_guid()
        ret = lfc.lfc_mkdirg(self.name, self.guid, 0755)
        statg=lfc.lfc_filestatg()
        lfc.lfc_statg("",self.guid, statg)
        return (statg,ret)
    def ret(self):
        statg=lfc.lfc_filestatg()
        statg.guid = self.guid
        return statg
    def compare(self,testVal, retVal):
        (ret, retRetVal) = retVal
        (test, testRetVal) = testVal
        retval = True
        if (retRetVal != testRetVal):
            retval = False
        retval = retval & (ret.guid == test.guid)
        return retval
    def clean(self):
        lfc.lfc_rmdir(self.name)



class test_create_dir_pd(_test):
    def __init__(self):
        self.retVal=-1
    def info(self):
        return "Directory creation (permission denied)"
    def test(self):
        self.name = "/python_mkdir_test"
        self.guid = self.get_guid()
        ret = lfc.lfc_mkdirg(self.name, self.guid, 0755)
        statg=lfc.lfc_filestatg()
        lfc.lfc_statg("",self.guid, statg)
        return (statg,ret)
    def ret(self):
        statg=lfc.lfc_filestatg()
        statg.guid = ""
        return statg
    def clean(self):
        lfc.lfc_rmdir(self.name)
    def compare(self,testVal, retVal):
        (ret, retRetVal) = retVal
        (test, testRetVal) = testVal
        retval = True
        if (retRetVal != testRetVal):
            retval = False
        retval = retval & (ret.guid == test.guid)
        return retval

class lfc_mkdirg_test(_testRunner):
    def __init__(self):
        self.name = "lfc_mkdirg_test"
        self.tests=[test_create_dir_ok, test_create_dir_pd]


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

