def setup_method(self):
     self.tmpdir = tempfile.mkdtemp()
     print self.tmpdir
     self.persister = UBCalculationJSONPersister(self.tmpdir,
                                                 UBCalcStateEncoder)
     f = open(os.path.join(self.tmpdir, 'unexpected_file'), 'w')
     f.close()
Example #2
0
 def _createPersister(self):
     self.tmpdir = tempfile.mkdtemp()
     print self.tmpdir
     self.persister = UBCalculationJSONPersister(self.tmpdir)
     f = open(os.path.join(self.tmpdir, 'unexpected_file'), 'w')
     f.close()
     return self.persister
Example #3
0
    def setup_method(self):

        self.tempdir = tempfile.mkdtemp()

        geometry = SixCircle()  # pass through
        hardware = Mock()
        names = 'm', 'd', 'n', 'e', 'c', 'p'
        hardware.get_axes_names.return_value = names
        self.tmpdir = tempfile.mkdtemp()
        print self.tmpdir
        self.ubcalc = UBCalculation(hardware, geometry,
                                    UBCalculationJSONPersister(self.tmpdir),
                                    YouUbCalcStrategy())
class TestUBCalculationJSONPersister(object):
    def setup_method(self):
        self.tmpdir = tempfile.mkdtemp()
        print self.tmpdir
        self.persister = UBCalculationJSONPersister(self.tmpdir,
                                                    UBCalcStateEncoder)
        f = open(os.path.join(self.tmpdir, 'unexpected_file'), 'w')
        f.close()

    def test_list_with_empty_dir(self):
        eq_(self.persister.list(), [])

    def test_save_load(self):
        d = {'a': 1, 'b': 2}
        self.persister.save(d, 'first')
        eq_(self.persister.load('first'), d)

    def test_save_overwites(self):
        d1 = {'a': 1, 'b': 2}
        self.persister.save(d1, 'first')
        eq_(self.persister.load('first'), d1)

        d2 = {'a': 3, 'b': 4, 'c': 5}
        self.persister.save(d2, 'first')
        eq_(self.persister.load('first'), d2)

    def test_list(self):
        d = {'a': 1, 'b': 2}
        self.persister.save(d, 'first')
        eq_(self.persister.list(), ['first'])

    def test_multiple_list(self):
        d = {'a': 1, 'b': 2}
        self.persister.save(d, 'first_written')
        time.sleep(1.)
        eq_(self.persister.list(), ['first_written'])
        self.persister.save(d, 'second_written')
        time.sleep(1.)
        eq_(self.persister.list(), ['second_written', 'first_written'])
        self.persister.save(d, 'third_written')
        time.sleep(1.)
        eq_(self.persister.list(),
            ['third_written', 'second_written', 'first_written'])

    def test_remove_list(self):
        d = {'a': 1, 'b': 2}
        self.persister.save(d, 'first')
        self.persister.remove('first')
        eq_(self.persister.list(), [])
Example #5
0
except NameError:
    IPYTHON = False


module_name = sys.argv[1] #3 if IPYTHON else 1]
debug = sys.argv[2] == 'True' #4 if IPYTHON else 2])

print
print bold('-' * 34 + ' DIFFCALC ' + '-' * 35)

# configure persisentence
DIFFCALC_VAR = os.path.join(os.path.expanduser('~'), '.diffcalc', module_name)
if not os.path.exists(DIFFCALC_VAR):
    print "Making diffcalc var folder:'%s'" % DIFFCALC_VAR
    os.makedirs(DIFFCALC_VAR)
diffcalc.settings.ubcalc_persister = UBCalculationJSONPersister(DIFFCALC_VAR)

# configure debug
diffcalc.util.DEBUG = debug
if debug:
    print "WARNING: debug mode on; help for command syntax errors disabled."

# import script
script = os.path.join(DIFFCALC_ROOT, 'startup', module_name) + '.py'

print "Startup script: '%s'" % script    
namespace = {}
execfile(script, namespace)
globals().update(namespace)
diffcalc.gdasupport.minigda.command.ROOT_NAMESPACE_DICT = dict(namespace)
print bold('-' * 36 + ' Help ' + '-' * 37)
Example #6
0
    IPYTHON = False

try:
    from gda.device.scannable.scannablegroup import ScannableGroup
    from gdascripts.scannable.dummy import SingleInputDummy as Dummy
    from diffcmd.diffcmd_utils import alias_commands
    GDA = True
except ImportError:
    # Not running in gda environment so fall back to minigda emulation
    from diffcalc.gdasupport.minigda.scannable import ScannableGroup
    from diffcalc.gdasupport.minigda.scannable import SingleFieldDummyScannable as Dummy
    GDA = False


HELP_STRING = \
"""Quick:  https://github.com/DiamondLightSource/diffcalc/blob/master/README.rst
Manual: http://diffcalc.readthedocs.io/en/latest/youmanual.html
Type:   > help ub
        > help hkl"""

if GDA:
    from gda.configuration.properties import LocalProperties  # @UnresolvedImport
    var_folder = LocalProperties.get("gda.var")
    diffcalc_persistance_path = os.path.join(var_folder, 'diffcalc')
    if not os.path.exists(diffcalc_persistance_path):
        print "Making diffcalc var folder:'%s'" % diffcalc_persistance_path
        os.makedirs(diffcalc_persistance_path)
    settings.ubcalc_persister = UBCalculationJSONPersister(
        diffcalc_persistance_path, YouStateEncoder)
# else: should have been set if outside GDA
 def setUp(self):
     self.tmpdir = tempfile.mkdtemp()
     print self.tmpdir
     self.persister = UBCalculationJSONPersister(self.tmpdir)
     f = open(os.path.join(self.tmpdir, 'unexpected_file'), 'w')
     f.close()
class TestUBCalculationJSONPersister(unittest.TestCase):

    def setUp(self):
        self.tmpdir = tempfile.mkdtemp()
        print self.tmpdir
        self.persister = UBCalculationJSONPersister(self.tmpdir)
        f = open(os.path.join(self.tmpdir, 'unexpected_file'), 'w')
        f.close()
        
    def test_list_with_empty_dir(self):
        eq_(self.persister.list(), [])
        
    def test_save_load(self):
        d = {'a' : 1, 'b': 2}
        self.persister.save(d, 'first')
        eq_(self.persister.load('first'), d)

    def test_save_overwites(self):
        d1 = {'a' : 1, 'b': 2}
        self.persister.save(d1, 'first')
        eq_(self.persister.load('first'), d1)

        d2 = {'a' : 3, 'b': 4, 'c' : 5}
        self.persister.save(d2, 'first')
        eq_(self.persister.load('first'), d2)

    def test_list(self):
        d = {'a' : 1, 'b': 2}
        self.persister.save(d, 'first')
        eq_(self.persister.list(), ['first'])
        
    def test_multiple_list(self):
        d = {'a' : 1, 'b': 2}
        self.persister.save(d, 'first')
        time.sleep(.5)
        self.persister.save(d, 'second')
        time.sleep(.5)
        self.persister.save(d, 'alphabetically_first')
        eq_(self.persister.list(), ['alphabetically_first', 'second', 'first'])
        
    def test_remove_list(self):
        d = {'a' : 1, 'b': 2}
        self.persister.save(d, 'first')
        self.persister.remove('first')
        eq_(self.persister.list(), [])
Example #9
0
    __IPYTHON__  # @UndefinedVariable
    IPYTHON = True
except NameError:
    IPYTHON = False

module_name = sys.argv[1]  #3 if IPYTHON else 1]
debug = sys.argv[2] == 'True'  #4 if IPYTHON else 2])
print
print(bold('-' * 34 + ' DIFFCALC ' + '-' * 35))

# configure persisentence
DIFFCALC_VAR = os.path.join(os.path.expanduser('~'), '.diffcalc', module_name)
if not os.path.exists(DIFFCALC_VAR):
    print("Making diffcalc var folder:'%s'" % DIFFCALC_VAR)
    os.makedirs(DIFFCALC_VAR)
diffcalc.settings.ubcalc_persister = UBCalculationJSONPersister(
    DIFFCALC_VAR, UBCalcStateEncoder)

# configure debug
diffcalc.util.DEBUG = debug
if debug:
    print("WARNING: debug mode on; help for command syntax errors disabled.")

# import script
script = os.path.join(DIFFCALC_ROOT, 'startup', module_name) + '.py'

print("Startup script: '%s'" % script)
namespace = {}
exec(open(script).read(), namespace)
globals().update(namespace)
diffcalc.gdasupport.minigda.command.ROOT_NAMESPACE_DICT = dict(namespace)
print(bold('-' * 36 + ' Help ' + '-' * 37))