| # Copyright (c) Frederick Dean |
| # See LICENSE for details. |
| |
| """ |
| Unit tests for `OpenSSL.rand`. |
| """ |
| |
| import pytest |
| |
| from OpenSSL import rand |
| |
| |
| class TestRand(object): |
| |
| @pytest.mark.parametrize('args', [ |
| (b"foo", None), |
| (None, 3), |
| ]) |
| def test_add_wrong_args(self, args): |
| """ |
| `OpenSSL.rand.add` raises `TypeError` if called with arguments not of |
| type `str` and `int`. |
| """ |
| with pytest.raises(TypeError): |
| rand.add(*args) |
| |
| def test_add(self): |
| """ |
| `OpenSSL.rand.add` adds entropy to the PRNG. |
| """ |
| rand.add(b'hamburger', 3) |
| |
| def test_status(self): |
| """ |
| `OpenSSL.rand.status` returns `1` if the PRNG has sufficient entropy, |
| `0` otherwise. |
| """ |
| assert rand.status() == 1 |