Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add doc example to tests #490

Merged
14 commits merged into from Mar 13, 2017
11 changes: 7 additions & 4 deletions moviepy/video/compositing/concatenate.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,15 @@ def make_frame(t):
i = max([i for i, e in enumerate(tt) if e <= t])
return clips[i].get_frame(t - tt[i])

def get_mask(c):
mask = c.mask or ColorClip([1, 1], col=1, ismask=True)
if mask.duration is None:
mask.duration = c.duration
return mask

result = VideoClip(ismask = ismask, make_frame = make_frame)
if any([c.mask is not None for c in clips]):
masks = [c.mask.set_duration(c.duration) if (c.mask is not None) else
ColorClip([1,1], col=1, ismask=True, duration=c.duration)
#ColorClip(c.size, col=1, ismask=True).set_duration(c.duration)
for c in clips]
masks = [get_mask(c) for c in clips]
result.mask = concatenate_videoclips(masks, method="chain", ismask=True)
result.clips = clips
elif method == "compose":
Expand Down
44 changes: 44 additions & 0 deletions tests/test_examples.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import pytest
from moviepy.editor import *
import moviepy.video.tools.cuts as cuts

import sys
sys.path.append("tests")
import download_media

def test_download_media(capsys):
with capsys.disabled():
download_media.download()

def test_matplotlib():
#for now, python 3.5 installs a version of matplotlib that complains
#about $DISPLAY variable, so lets just ignore for now.
if sys.version_info < (3,4):
return

if sys.version_info.major == 3 and sys.version_info.minor == 5:
return

import matplotlib.pyplot as plt
import numpy as np
from moviepy.editor import VideoClip
from moviepy.video.io.bindings import mplfig_to_npimage

x = np.linspace(-2, 2, 200)

duration = 2

fig, ax = plt.subplots()

def make_frame(t):
ax.clear()
ax.plot(x, np.sinc(x**2) + np.sin(x + 2*np.pi/duration * t), lw=3)
ax.set_ylim(-1.5, 2.5)
return mplfig_to_npimage(fig)

animation = VideoClip(make_frame, duration=duration)
animation.write_gif('/tmp/matplotlib.gif', fps=20)


if __name__ == '__main__':
pytest.main()