def test_greedy_actor(): script = Script({ 'actors': ['tests.greedy'], 'default': [{ 'line': 'perform' }] }) script.run()
def test_tags_false(): script = Script({ 'actors': ['tests.generator'], 'default': { 'tags': 'performed', 'lines': ['generate'] } }) script.run() bucket = script.storage.bucket('tests.actors.generator') assert bucket.get('counter') is None
def test_tags_true(): script = Script({ 'actors': ['tests.greedy', 'tests.generator'], 'perform': ['perform'], 'generate': { 'tags': 'performed', 'lines': ['generate'] } }) script.run() bucket = script.storage.bucket('tests.actors.generator') assert bucket.get('counter') == 5
def test_each_invalid(): script = Script({ 'actors': ['tests.generator', 'tests.logic'], 'default': [{ 'line': 'generate', 'each': '$loop' }] }) def err(ex): raise ex with pytest.raises(ScriptError): script.run()
def test_unless(): script = Script({ 'actors': ['tests.generator', 'tests.logic'], 'default': ['generate', { 'line': 'set foo = bar', 'unless': 'counter == 5' }] }) def err(ex): raise ex script.on('line.error', err) script.run() assert script.context['counter'] == 5 bucket = script.storage.bucket('tests.actors.logic') assert bucket.get('foo') is None
def test_each_break(): script = Script({ 'actors': ['tests.generator', 'tests.logic'], '$loop': ['increment foo', 'break'], 'default': [{ 'line': 'generate', 'each': '$loop' }] }) def err(ex): raise ex script.on('line.error', err) script.run() assert script.context['counter'] == 1 bucket = script.storage.bucket('tests.actors.logic') assert bucket.get('foo') == 1
def test_each_set(): script = Script({ 'actors': ['tests.generator', 'tests.logic'], '$loop': ['set foo = {{ number }}'], 'default': [{ 'line': 'generate', 'each': '$loop' }] }) def err(ex): raise ex script.on('line.error', err) script.run() assert script.context['counter'] == 5 bucket = script.storage.bucket('tests.actors.logic') assert bucket.get('foo') == '5'
def test_dry_run(): filename = os.path.join( os.path.dirname( os.path.dirname(__file__) ), 'fixtures', 'test_items.yaml' ) script = Script( { 'actors': [ 'loda.inoreader', 'loda.twitter' ], 'builtin': [ 'hold foo for 1 minute', 'release foo', 'pick 1 from items', 'pick 1 from items at random' ], 'rss': [ 'get latest articles in starred folder' ], 'twitter': [ 'follow @jack', 'follow #podcasters', 'find tweets from:jack', 'tweet "hello Jack"', 'rt 12345' ] } ) script.fixtures.add('items', filename) script.dry_run = True script.run()
def test_generator_type(): script = Script({'actors': ['tests.generator'], 'default': ['generate']}) script.run() bucket = script.storage.bucket('tests.actors.generator') assert bucket.get('counter') == 5