Mercurial > code > home > repos > light9
view light9/effect/sequencer/eval_faders_test.py @ 2188:9fc653ee7fff
WIP redoing how Note works. The new Note outputs EffectSettings only,
and callers have to effect_eval them. Still not sure what SimpleOutputs does.
author | drewp@bigasterisk.com |
---|---|
date | Sat, 20 May 2023 14:49:15 -0700 |
parents | |
children | 51c670ce5d50 |
line wrap: on
line source
from unittest import mock from light9.effect.sequencer.eval_faders import FaderEval from light9.effect.settings import DeviceSettings from light9.mock_syncedgraph import MockSyncedGraph from light9.namespaces import L9 PREFIXES = ''' @prefix : <http://light9.bigasterisk.com/> . @prefix effect: <http://light9.bigasterisk.com/effect/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix show: <http://light9.bigasterisk.com/show/dance2023/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix dev: <http://light9.bigasterisk.com/theater/test/device/> . @prefix dmxA: <http://light9.bigasterisk.com/output/dmxA/> . ''' NOTE_GRAPH = PREFIXES + ''' :brightness a :DeviceAttr; rdfs:label "brightness"; :dataType :scalar . :strength a :EffectAttr; rdfs:label "strength" . :SimpleDimmer a :DeviceClass; rdfs:label "SimpleDimmer"; :deviceAttr :brightness; :attr [ :outputAttr :level; :dmxOffset 0 ] . :light1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 178 . effect:effect1 a :EffectClass; :setting effect:effect1_set1 . effect:effect1_set1 :device :light1; :deviceAttr :brightness; :scaledValue 0.5 . :fade1 a :Fader; :effectClass effect:effect1; :effectAttr :strength; :value 0.6 . ''' class TestFaderEval: def test_faderValueScalesEffectSettings(self): g = MockSyncedGraph(NOTE_GRAPH) sender = mock.MagicMock() f = FaderEval(g, sender) devSettings = f._computeOutput() assert devSettings == DeviceSettings(g, [(L9['light1'], L9['brightness'], 0.3)])